【发布时间】:2011-04-06 01:44:47
【问题描述】:
这几乎就是问题的标题。我一定在这里遗漏了一些信号解释......
在 PyGTK 上,我正在做:
class Foo:
def __init__(self):
self.gladefile = gladefile
self.wTree = gtk.glade.XML(self.gladefile, 'some_window')
self.window = self.wTree.get_widget('some_window')
events = { 'on_code_submit_clicked' : self.submit }
self.wTree.signal_autoconnect(events)
def submit(self):
self.window.destroy()
os.system('external_script')
code = Foo()
发生了什么,当按钮被点击时,它保持按下状态,然后脚本运行,在外部程序关闭后,窗口“闪烁”,被销毁并再次重新创建。
我还尝试了“按下”和“释放”信号。
我需要的行为:
- 点击按钮
- 销毁当前窗口
- 运行外部脚本(这将打开另一个程序的窗口)
- 关闭外部应用程序后重新创建 Foo() 窗口。
我能想象的是,该事件是在 clicked 事件期间运行的,而不是之后。这就是为什么窗口保持打开状态。 PyGTK 文档在glade page 上没有提及gtk_signal_connect_after 之类的内容,这让我完全迷失了方向。
【问题讨论】: