求助!gtk+ entry无法输入中文的问题
Tofloor
poster avatar
mygtk
deepin
2019-03-19 16:50
Author
本帖最后由 mygtk 于 2019-3-19 08:55 编辑

请教各位大神:
我是新手。我刚刚用deepin15.9安装了gtk+3.0,有两个问题想请教一下:
1、deepin无法安装gtk+2.0,这个手边有现成的教材可以使用,所以想用老版本,有deepin15.9安装gtk+2.0的教程吗?类比的方法已经试过了,不能用同样的方法安装gtk+2.0。
2、这是最关键的问题:按如下代码生成文本框后,无法输入中文。用gtk_entry_set_text(GTK_ENTRY(entry),“中文”),正常编译通过,英文输入输出正常。
但生成可执行文件后,不要说写入中文了,连复制都无法向其中粘贴入中文。想请教一下,有人知道这个问题该怎么解决吗?
这个问题在centOS7.6&>k+2.0下也一样,一直得不到解决。
#include

void button_pressed( GtkButton* button, gpointer ptr )
{
    GtkEntry *entry = (GtkEntry*) ptr;
    const gchar* abc = gtk_entry_get_text( entry );

    printf( "your's :[%s]\n", abc );
    return;
}

int main( int argc, char **argv )
{
    gtk_init( &argc, &argv );

    GtkWidget* window = gtk_window_new( GTK_WINDOW_TOPLEVEL );
    GtkWidget* entry  = gtk_entry_new();
    GtkWidget* button = gtk_button_new_with_label( "确定" );
    GtkWidget* hbox   = gtk_hbox_new( FALSE, 10 );


    gtk_container_add( (GtkContainer*)window, hbox );
    gtk_box_pack_start( (GtkBox*)hbox, entry, FALSE, TRUE, 0 );
    gtk_box_pack_start( (GtkBox*)hbox, button, FALSE, TRUE, 0 );

    gtk_entry_set_text(GTK_ENTRY(entry),"中文");   

    g_signal_connect( window, "destroy", G_CALLBACK( gtk_main_quit ), NULL );
    g_signal_connect( window, "delete-event", G_CALLBACK( gtk_main_quit ), NULL );
    g_signal_connect( button, "clicked",
        G_CALLBACK( button_pressed ), (gpointer*)entry );

    gtk_widget_show_all( window );
    gtk_main();
    return 0;
}

Reply Favorite View the author
All Replies

No replies yet