1

请原谅我问了这么一个业余的问题,但我刚刚开始使用 wxPython。当我尝试将 GridLabelRenderer.py 的演示代码复制并粘贴到新的 python 文件中时,我总是收到一条错误消息:

IDlE Subprocess: no IP port passed in sys. argv.

我相信该消息与我的文件不再保存在 demos 文件夹中的方式有​​关,并且错误是在谈论这段代码,我也相信:

if __name__ == '__main__':
    import sys, os
    import run
    run.main(['', os.path.basename(sys.argv[0])] + sys.argv[1:])

每当我将演示代码复制并粘贴到新位置的新文件中以使其完美运行时,我必须做些什么吗?提前致谢。

4

2 回答 2

1

我在 wxPython wiki 上写了一些关于此的内容:http ://wiki.wxpython.org/Using%20wxPython%20Demo%20Code

这也可能对您将来有所帮助。

于 2012-04-26T13:21:56.030 回答
0

wxPython 演示的代码在演示框架内运行。为了使用代码,最好的方法是获取类并在您的应用程序框架中实例化它们。

GridLabelRenderer.py 最简单的方法可能是:

imports....
classes...

class TestPanel(wx.Panel):
    ...................

if __name__ == '__main__':
    app = wx.PySimpleApp()
    class MyFrame(wx.Frame):
        def __init__(self, *args, **kargs):
            wx.Frame.__init__(self, *args, **kargs)
            self.p = TestPanel(self, None)

    MyFrame(None).Show()
    app.MainLoop()

不要忘记将 images.py 从演示目录复制到您的目录或 pythonpath 中的目录,以便通过 MyCornerLabelRenderer 类导入 images.py

于 2012-04-25T22:32:35.103 回答