如何将多个不同的窗口/对话框存储在一个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()
这确实产生了一个功能强大的软件,但它会发出各种警告,比如:
welcome_dialog.py:38: RuntimeWarning: missing handler 'on_contract_window_response'
self.builder.connect_signals(self)
对于我在Glade中为所有其他窗口定义的每个信号处理程序。我想我只想连接这个窗口/对话框的信号,忽略其他一切,但我不知道该怎么做。或者我可能做错了什么,我应该把每个窗口分成一个不同的GtkBuilder文件?或者在同一(初始)时间连接每个可能窗口的信号?
使用gtk.Builder.add_from_file
将文件的整个层次结构添加到Builder对象,这就是为什么您会收到信号连接警告;CCD_ 2调用尝试连接所有。
相反,使用gtk.Builder.add_objects_from_file
来选择要在当前类中处理的单个顶级窗口或小部件。