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をクラスMyCornerLabelRendererでインポートするには、images.pyをデモディレクトリからディレクトリまたはpythonpathのdirectroyにコピーすることを忘れないでください。

于 2012-04-25T22:32:35.103 に答える