【问题标题】:How to add two Boxes in a Box in GTK+如何在 GTK+ 中在一个盒子中添加两个盒子
【发布时间】:2016-02-23 20:06:43
【问题描述】:

我试图进入 GTK+ 2 盒子中的一个盒子。我会向你解释我的尝试。首先,我创建 3 个框(1,2,3)。然后我用 gtk_box_pack_start(GTK_BOX(box(1)), box(2), TRUE, TRUE, 0); 将 box(2) 添加到第一个 box(1) 中。在我想用 gtk_box_pack_start(GTK_BOX(box(1)), box3, TRUE, TRUE, 0) 在 box(1) 中添加另一个框之后。

我认为它可以正常工作,但在终端显示 Gtk-CRITICAL **: gtk_box_pack: assertion 'gtk_widget_get_parent (child) == NULL' failed。我不明白这个错误,因为父母可以有多个孩子。

那么如何在 1 盒中添加 2 盒?我做错了什么?

【问题讨论】:

  • box(1)box(2) 不是有效的变量名,您的意思是 box1box2
  • 是的,这只是为了向您展示我的意思。当然他们的名字是box1,box2。但是我在文本框(1,2,3)中使用了所以我只保留了名称。
  • 请显示实际代码,并使用正确的格式(代码行缩进四个空格)

标签: c gtk3


【解决方案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);

当然,您必须添加其他元素并将框添加到其他容器中,但我认为现在对于遇到问题或将遇到问题的每个人来说都清楚了。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2019-09-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-07-24
    • 1970-01-01
    相关资源
    最近更新 更多