在下面的用GTK3编译的示例中,当我单击entry字段时,GtkExpander会意外折叠。
#include <gtk/gtk.h>
static void destroy (GtkWidget *widget, gpointer data)
{
gtk_main_quit ();
}
int main( int argc,
char *argv[] )
{
gtk_init (&argc, &argv);
GtkWidget *entry;
entry = gtk_entry_new ();
GtkWidget *expander;
expander = gtk_expander_new ("test");
gtk_expander_set_expanded (GTK_EXPANDER(expander), TRUE);
gtk_container_add (GTK_CONTAINER(expander), entry);
GtkWidget *window;
window = gtk_window_new (GTK_WINDOW_TOPLEVEL);
gtk_container_add (GTK_CONTAINER(window), expander);
g_signal_connect (window, "destroy", G_CALLBACK (destroy), NULL);
gtk_widget_show_all (window);
gtk_main ();
return 0;
}
但是,如果GtkExpander在
gtk_widget_show_all()
之后展开,则它不会崩溃,即: gtk_widget_show_all (window);
gtk_expander_set_expanded (GTK_EXPANDER(expander), TRUE);
在
gtk_widget_show_all()
之前展开小部件有什么问题? 最佳答案
这是GTK+中的一个错误,现在已修复。
有关详细信息,请参见:
https://bugzilla.gnome.org/show_bug.cgi?id=783145
https://bugzilla.gnome.org/show_bug.cgi?id=774134
关于c - GtkExpander意外崩溃,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/44181644/