User interface GTK按钮标签更新
我正在使用C、Glade和Gtk设计GUI 我在glade中配置了一些信号来更新各种小部件的标签,主要是GtkButton和GtkLabel。整体功能是,当单击某个单选按钮时,所有按钮和标签都会相应更改(语言选择) 我正在widgets _draw()函数中使用函数gtk_label_set_label(…),它可以按预期工作(文本更改,g_打印发生(一次)) 但是,当我尝试从按钮执行相同操作时User interface GTK按钮标签更新,user-interface,gtk,glade,gtkbutton,User Interface,Gtk,Glade,Gtkbutton,我正在使用C、Glade和Gtk设计GUI 我在glade中配置了一些信号来更新各种小部件的标签,主要是GtkButton和GtkLabel。整体功能是,当单击某个单选按钮时,所有按钮和标签都会相应更改(语言选择) 我正在widgets _draw()函数中使用函数gtk_label_set_label(…),它可以按预期工作(文本更改,g_打印发生(一次)) 但是,当我尝试从按钮执行相同操作时 gboolean on_btnMyButton_draw(GtkButton *button, gp
gboolean on_btnMyButton_draw(GtkButton *button, gpointer *user_data) {
gtk_button_set_label(button, "custom text");
g_print("%s\n", "custom text");
return FALSE;
}
文本不会更新,但会显示,g_print()语句将永远打印(就像绘图是递归地调用自己一样)
有趣的是,如果我将按钮代码从draw移动到click,它将按预期工作,但是,我需要GUI重新绘制它自己,因此单击时更新是不切实际的
gboolean on_btnMyButton_draw(GtkButton *button, gpointer *user_data) {
gtk_button_set_label(button, "custom text");
g_print("%s\n", "custom text");
return FALSE;
}