0

我正在使用 wxPython 为我的应用程序构建 GUI。我使用 wxFormBuilder 构建了 GUI。但是,当将代码带入我的 python 应用程序并启动它时,窗口会弹出然后立即关闭。我也在为我的 GUI 使用 XRC。在将 PyDev 与 Eclipse 一起使用时,我在控制台中也没有收到任何错误消息。

启动 GUI 的 Python 代码:http: //pastebin.com/jBYWerd9

XRC 代码: http: //pastebin.com/QVEcuX0i

4

2 回答 2

0

我想你只需要

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
于 2013-09-19T19:06:59.813 回答
0

问题有两个方面。正如 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 的链接:

于 2013-09-19T20:57:01.640 回答