问题描述
我想动态地将一个孩子(如代码中所说的)添加到一个盒子对象(在 Glade 中创建),但是孩子(在我的测试案例中是一个 label
,最后这应该是一个 { {1}}) 不知何故没有出现在窗口中。
我的代码:
comboBox
#!/usr/bin/env python3
import gi
gi.require_version("Gtk","3.0")
from gi.repository import Gtk
class TestClass:
def on_window_destroy(self,object,data=None):
print("quit with cancel")
Gtk.main_quit()
def on_quit_activate(self,menuitem,data=None):
print("quit from menu")
Gtk.main_quit()
def addLabel(self):
ret = Gtk.Label(label="Testing")
ret.set_text("Testing text")
return ret
def __init__(self):
self.gladefile = "./testing.glade"
self.builder = Gtk.Builder()
self.builder.add_from_file(self.gladefile)
self.builder.connect_signals(self)
#self.grid = Gtk.Grid()
Box = self.builder.get_object("Box")
Box.add(self.addLabel())
#self.grid.add(self.addLabel())
self.window = self.builder.get_object("window")
self.window.show()
if __name__ == '__main__':
main = TestClass()
Gtk.main()
quit()
最后,用户应该有一个项目列表,其中可以填充某些字段(主要是 <!-- Generated with glade 3.38.2 -->
<interface>
<requires lib="gtk+" version="3.24"/>
<object class="GtkWindow" id="window">
<property name="can-focus">False</property>
<signal name="destroy" handler="on_window_destroy" swapped="no"/>
<child>
<object class="GtkBox" id="Box">
<property name="visible">True</property>
<property name="can-focus">False</property>
<property name="orientation">vertical</property>
<child>
<placeholder/>
</child>
<child>
<placeholder/>
</child>
<child>
<placeholder/>
</child>
</object>
</child>
</object>
</interface>
es),并且存在一个按钮以添加更多列表项目。
如果有人认为这样做比在运行时手动添加字段更好,请告诉我。
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)