【问题标题】:Handling multiple windows in PyGTK/GtkBuilder在 PyGTK/GtkBuilder 中处理多个窗口
【发布时间】:2011-06-06 23:17:07
【问题描述】:

如何在一个 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 文件?还是在同一(初始)时间连接每个可能窗口的信号?

【问题讨论】:

    标签: python pygtk glade gtkbuilder


    【解决方案1】:

    使用 gtk.Builder.add_from_file 将整个层次结构从您的文件添加到 Builder 对象,这就是您收到信号连接警告的原因; builder.connect_signals() 调用试图连接所有东西

    改为使用gtk.Builder.add_objects_from_file 来选择您要在当前类中处理的单个顶级窗口或小部件。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-12-21
      • 1970-01-01
      • 1970-01-01
      • 2012-11-19
      • 2023-03-31
      • 1970-01-01
      相关资源
      最近更新 更多