dum*_*ter 1 python pygtk glade gtkbuilder
如何在一个GtkBuilder文件中存储多个不同的窗口/对话框,然后在不同的类中加载这些窗口(每个类对应一个不同的窗口)?例如,目前我正在做的事情如下:
def __init__(self):
self.builder = gtk.Builder()
self.builder.add_from_file('gtkbuilder.xml')
self.welcome_dialog = self.builder.get_object('welcome_dialog')
self.builder.connect_signals(self)
self.welcome_dialog.show()
Run Code Online (Sandbox Code Playgroud)
这确实产生了一个功能很强的软件,但是它会发出各种各样的警告:
welcome_dialog.py:38: RuntimeWarning: missing handler 'on_contract_window_response'
self.builder.connect_signals(self)
Run Code Online (Sandbox Code Playgroud)
对于我在Glade中为所有其他窗口定义的每个信号处理程序.我想我想做的就是连接这个单一窗口/对话框的信号并忽略其他一切,但我不知道该怎么做.或者也许我正在做一些可怕的错误,我应该将每个窗口拆分成不同的GtkBuilder文件?或者在相同(初始)时间为每个可能的窗口连接信号?
使用gtk.Builder.add_from_file
将文件中的整个层次结构添加到Builder对象,这就是您收到信号连接警告的原因; 的builder.connect_signals()
通话试图连接起来的一切.
而是gtk.Builder.add_objects_from_file
用于选择要在当前类中处理的单个顶级窗口或窗口小部件.