我正在使用 wxPython 为我的应用程序构建 GUI。我使用 wxFormBuilder 构建了 GUI。但是,当将代码带入我的 python 应用程序并启动它时,窗口会弹出然后立即关闭。我也在为我的 GUI 使用 XRC。在将 PyDev 与 Eclipse 一起使用时,我在控制台中也没有收到任何错误消息。
启动 GUI 的 Python 代码:http: //pastebin.com/jBYWerd9
XRC 代码: http: //pastebin.com/QVEcuX0i
我正在使用 wxPython 为我的应用程序构建 GUI。我使用 wxFormBuilder 构建了 GUI。但是,当将代码带入我的 python 应用程序并启动它时,窗口会弹出然后立即关闭。我也在为我的 GUI 使用 XRC。在将 PyDev 与 Eclipse 一起使用时,我在控制台中也没有收到任何错误消息。
启动 GUI 的 Python 代码:http: //pastebin.com/jBYWerd9
XRC 代码: http: //pastebin.com/QVEcuX0i
我想你只需要
def main():
app = VisualController(redirect=False)
app.MainLoop() #you need this
return #after calling Mainloop you will not get here until your main window is destroyed
问题有两个方面。正如 Joran 所提到的,您需要实际创建 App 类的实例并调用 MainLoop() 方法。第二部分是您需要从 XRC 文件实际加载帧并显示它。将您的代码更改为以下内容:
import wx
from wx import xrc
class VisualController(wx.App):
def OnInit(self):
self.res = xrc.XmlResource('data/GUI.xrc')
frame = self.res.LoadFrame(None, "MyFrame1")
frame.Show()
return True
def main():
app = VisualController(redirect=False)
app.MainLoop()
if __name__ == '__main__':
main()
如果您不加载框架并显示它,那么应用程序不会执行任何操作,并且会在完成运行 OnInit() 方法时退出。以下是一些有关使用 XRC 的链接: