【发布时间】:2014-06-28 12:46:17
【问题描述】:
我是 wxPython 的新手(wxPython 3.0.0.0、python 2.7、Mac OS X),我正在尝试在应用程序的 OnInit 函数中显示一个消息对话框。我使用非常相似的三行代码块运行的示例脚本工作得很好,但是当我使用这个代码块时,消息对话框会出现一瞬间,然后消失。我做错了什么愚蠢的事情吗?
import wx
class MyApp(wx.App):
def __init__(self):
wx.App.__init__(self, redirect=False)
def OnInit(self):
self.rootView = wx.Frame(parent=None, id=-1, title="Wire Frame",
pos=(150, 150), size=(350, 250))
self.rootView.Show()
self.SetTopWindow(self.rootView)
dlg = wx.MessageDialog(self.rootView, "Hi", "title", wx.OK|wx.ICON_ERROR)
dlg.ShowModal()
dlg.Destroy()
return True
if __name__ == "__main__":
app = MyApp()
app.MainLoop()
编辑:在 Ubuntu 上使用 wxPython 2.8.12.1 进行了测试,那里的行为是正常的。我会尝试在那里获得一个更新的版本来测试它。也许这是 wxPython 中的一个错误?我已经提交了一个错误报告,所以我很快就会发现。
【问题讨论】:
-
我似乎无法重现这种行为。这段代码似乎可以在我的系统上运行。
-
它似乎也适用于其他系统 - 也许它是特定于平台的。我用我做过的其他测试编辑了这个问题。
-
它在 Windows 8 上也能正常工作,wxPython v3.0 也一样。