0

wxpython で xrc リソースを操作しようとしています。それは良いことですが、大きな「いいえ」が 1 つあります。xrc からの wxFrame クラス ロードセットのオートコンプリートはありません。そして、xrc クラスからロードされた他のものも。

これは正しいですか、それとも私は何かをやっていますか?

たとえば、コードの一部を次に示します。

import wx
from wx import xrc

class MyApp(wx.App):
    def OnInit(self):
        if os.path.exists("phc.xrc"):
            self.res = xrc.XmlResource("phc.xrc")

            self.frame = self.res.LoadFrame(None, 'MyFrame')
            self.list_box = xrc.XRCCTRL(self.frame, "list_box_1")
            self.notebook = xrc.XRCCTRL(self.frame, "Notebook")
            self.StatusBar= xrc.XRCCTRL(self.frame, "MFrame_statusbar")
            self.list_ctrl= xrc.XRCCTRL(self.frame, "list_ctr_1")
4

2 に答える 2

0

オートコンプリート機能の良し悪しは、使用しているエディター/IDE に完全に依存します。Python スクリプトの記述に何を使用しているかは特定されていませんが、個人的な経験から、オートコンプリートがないことはおそらく正しいと思います。

過去に Eclipse/PyDev、Spyder、SPE、および PyCharm を使用しましたが、それらはすべて、XRC で作成されたウィジェットをオートコンプリートする機能を示していませんでした。Python 用の Emacs オートコンプリートを動作させて試してみることもできますが、うまくいくとは思えません。

これが特に邪魔だとは思いませんでしたが、人それぞれだと思います。うまくいけば、それはあなたの質問に答えます。

于 2013-03-24T19:17:37.050 に答える
0

はい、オートコンプリートはここでは機能しません。これは、コードが xrc が何を返すかを認識していないためです。コードは、実行時にのみ変数の型 (この場合はフレーム) を認識します。

残念ながら/幸いなことに、オートコンプリートを機能させるために Python の変数に「タイプ」を割り当てることはできません。

しかし、Eclipse + PyDev プラグインでは

オートコンプリートが機能するように、次のステートメントを追加できます。

assert isinstance(self.frame, wx.Frame)

オートコンプリートは、このステートメントの後に機能します。

于 2013-07-25T03:25:04.347 に答える