【问题标题】:Glade 'Parentless' WidgetGlade 'Parentless' 小部件
【发布时间】:2013-08-27 11:28:43
【问题描述】:

有没有办法在 Glade 中创建“无父”小部件?我的意思是,例如,一个没有关联父级的表,以便我以后可以将其分配为其他东西的子级。

我要做的是一个带有 3 个位置 VBox 的 GTK 窗口,其中 2 个是静态的,1 个是动态的。在这个动态位置,我想加载一个预定义的表格,该表格会根据我在静态部分所做的任何事情而有所不同,例如按下 X 或 Y 按钮。

这可能吗,还是我必须通过代码创建动态表?

我正在使用 Ruby 1.9.3、Gtk2 和 Glade3。谢谢。

编辑:我尝试使用表格创建一个单独的窗口,并将其中一个表格加载到预期的窗口中。我收到一个错误,显然是 Child-Parent 不匹配:“Gtk-CRITICAL **:gtk_box_pack: assertion `child->parent == NULL' failed”

【问题讨论】:

  • 对于单独的窗口解决方法:您需要使用 gtk_widget_reparent() 或手动 a) 获取对子项的引用,b) 从临时容器中删除它,c) 将其添加到预期容器中,d ) 未引用。

标签: ruby gtk glade


【解决方案1】:

是的,如果您在小部件调色板中右键单击小部件,则会出现一个名为“添加为顶级小部件”之类的菜单项——我现在手头没有 Glade 的副本来测试名字是准确的。

然后,当您加载 GtkBuilder 文件时,小部件将在没有父级的情况下创建,但 GtkBuilder 将保存对它的引用。

【讨论】:

  • 谢谢,我不敢相信我错过了。我最终是通过代码完成的,但现在我知道以供将来参考。
猜你喜欢
  • 1970-01-01
  • 2014-04-08
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多