如何使用GTKBuilder从GLADE文件中重复使用小部件树?
-
08-10-2019 - |
题
我想填充一本gtk.notebook。每次用户打开文件时,都会生成新的笔记本电脑选项卡。非常直截了当。我的问题是,我使用GLADE构建UI,笔记本电脑将应该具有子小部件树(scrolledWindow-> fiewport-> viewport-> Alignment-> frame)。在我的GLADE文件中,我有一个模板笔记本电脑,我想多次使用它,因此我不必在普通GTK中编写整个树。使用libglade,您可以重复使用Pygtk常见问题解答中解释的小部件树: http://faq.pygtk.org/index.py?file=faq22.011.htp&req = show 。我该如何使用gtkbuilder做到这一点?
提前致谢,
亚瑟
解决方案
用gtkbuilder这样做:
builder = gtk.Builder()
builder.add_from_file("GUI.xml")
builder.connect_signals(self)
self.window1 = builder.get_object("window1")
self.window1.show()
编辑:
最初我错了,似乎GTKBuilder添加时会实例化对象。因此,这样做的理想方法是通过字符串手动添加小部件
builder.add_from_string("""
<interface>
<object class="GtkWindow" id="window1">
<child>
<object class="GtkComboBox" id="combobox1">
<property name="model">liststore1</property>
</object>
</child>
</object>
</interface>""")
self.window1 = builder.get_object("window1")
希望这有效!
不隶属于 StackOverflow