【发布时间】:2010-11-03 19:22:09
【问题描述】:
我刚开始使用 PyGtk,但无法理解窗口的交互。
我的非常简单的问题如下。
假设我有一个简单地创建一个带有文本输入字段的窗口的类。单击该窗口中的“确定”按钮时,我想将输入字段中的文本传递到另一个窗口,该窗口由另一个类创建,带有 gtk 菜单,并使用文本字段的内容创建一个新条目。
我该如何实现?
【问题讨论】:
我刚开始使用 PyGtk,但无法理解窗口的交互。
我的非常简单的问题如下。
假设我有一个简单地创建一个带有文本输入字段的窗口的类。单击该窗口中的“确定”按钮时,我想将输入字段中的文本传递到另一个窗口,该窗口由另一个类创建,带有 gtk 菜单,并使用文本字段的内容创建一个新条目。
我该如何实现?
【问题讨论】:
我们将 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
# ...
【讨论】: