我正在编译并运行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");
}
答案 0 :(得分:0)
哦,您只是忘记了用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");
}