【问题标题】:How can I pass variables between two classes/windows in PyGtk?如何在 PyGtk 中的两个类/窗口之间传递变量?
【发布时间】:2010-11-03 19:22:09
【问题描述】:

我刚开始使用 PyGtk,但无法理解窗口的交互。

我的非常简单的问题如下。
假设我有一个简单地创建一个带有文本输入字段的窗口的类。单击该窗口中的“确定”按钮时,我想将输入字段中的文本传递到另一个窗口,该窗口由另一个类创建,带有 gtk 菜单,并使用文本字段的内容创建一个新条目。

我该如何实现?

【问题讨论】:

    标签: python pygtk


    【解决方案1】:

    我们将 A 称为菜单,将 B 称为带有文本输入字段的窗口。 如果我理解正确 A 调用 B 并且在 B 中按下 Ok 按钮时,A 需要更新其菜单。

    在这种情况下,您可以在 A 中创建一个回调函数,当 B 的确定按钮被按下时调用。当您创建 B 时,您可以传递此回调,这是一个示例:

    class B(gtk.Window):
       def __init__(self, callback):
          gtk.Window.__init__(self)
    
          self.callback = callback
          # Create components:
          # self.entry, self.ok_button ...
    
          self.ok_button.connect("clicked", self.clicked)
    
       def clicked(self, button):
          self.callback(self.entry.get_text())
    
    class A(gtk.Window):
       def create_popup(self):
          popup = B(self.popup_callback)
          popup.show()
    
       def popup_callback(self, text):
           # Update menu with new text
           # ...
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-09-12
      • 1970-01-01
      相关资源
      最近更新 更多