我正在编译并运行一个gtk应用程序,当我尝试在hbox中放置一个按钮时运行时出现错误。这个错误是什么意思/我该如何解决这个问题。我通过终端运行时得到这个,当我按下运行此功能的按钮时GTK以某种方式打印出来:
void ButtonHandler(void) {
GtkWidget (*Button) = NULL;
GtkWidget (*Entry) = gtk_entry_new();
GtkWidget (*Vbox) = gtk_vbox_new(0, 8);
GtkWidget (*Hbox) = gtk_hbox_new(0, 8);
FILE (*SelectedWorld);
gtk_container_add(GTK_CONTAINER(Vbox), Hbox);
gtk_box_pack_start(GTK_BOX(Vbox), Entry, 1, 1, 0);
gtk_box_pack_start(GTK_BOX(Hbox),Button, 1, 1, 0);//<---- here is the problem
printf("Button pushed\n");
}
哦,你忘了用gtk_button_new
初始化按钮。问题是它无法将NULL放入vbox或hbox中。干得好:
void ButtonHandler(void) {
GtkWidget *Button = gtk_button_new_with_label("Button");// <--- add this
GtkWidget *Entry = gtk_entry_new();
GtkWidget *Vbox = gtk_vbox_new(0, 8);
GtkWidget *Hbox = gtk_hbox_new(0, 8);
FILE *SelectedWorld;
gtk_container_add(GTK_CONTAINER(Vbox), Hbox);
gtk_box_pack_start(GTK_BOX(Vbox), Entry, 1, 1, 0);
gtk_box_pack_start(GTK_BOX(Hbox),Button, 1, 1, 0);
printf("Button pushed\n");
}