我试图进入GTK + 2盒中的一个盒子。我会解释你的尝试。首先,我创建3个盒子(1,2,3)。然后我使用gtk_box_pack_start(GTK_BOX(方框(1)),方框(2),TRUE,TRUE,0)将方框(2)添加到第一个方框(1)中;我想在框(1)中添加另一个框与gtk_box_pack_start(GTK_BOX(方框(1)),方框3,TRUE,TRUE,0)。
我认为它正常工作但在终端显示了Gtk-CRITICAL **:gtk_box_pack:assertion> gtk_widget_get_parent(child)== NULL'失败。我不明白错误,因为父母可以有一个以上的孩子。
那么如何在1个盒子中添加2个盒子?我做错了什么?
答案 0 :(得分:1)
对于所有遇到此问题的人。这是一个在另一个框中创建2个框的简短代码:
GtkWidget *box;
GtkWidget *box1;
GtkWidget *box2;
box = gtk_box_new(GTK_ORIENTATION_VERTICAL, 0); //change it to HORIZONTAL if need
box1 = gtk_box_new(GTK_ORIENTATION_HORIZONTAL, 0);
box2 = gtk_box_new(GTK_ORIENTATION_HORIZONTAL, 0);
gtk_box_pack_start(GTK_BOX(box),box1, TRUE, TRUE, 0);
gtk_box_pack_start(GTK_BOX(box),box2, TRUE, TRUE, 0);
gtk_widget_show(box1);
gtk_widget_show(box2);
gtk_widget_show(box);
当然,您必须添加其他元素并将该框添加到其他容器中,但我认为现在对于遇到问题或将遇到问题的每个人都清楚。