2011-12-22 60 views
1

がスローされますが、私は不測の事態wxformbuilderパイソンは、私がwxgladeから移動していたコードは、背景が関連しているかどうかわからないNameError

に含めるよ生成したので、私はwxgladeからXRCを生成し、wxformbuilder

にインポート

私はそれが正しくグリッドを示し、サブクラス可否も(mygrid.MyGrid)正しいwxformbuilderで、私はいくつかの機能を追加するためにサブクラス化グリッドを持っている

もちろんの生成されたコードはそれとしてmygridをインポートしません。それを実行すると、それはスローされます:

NameError: global name 'mygrid' is not defined 

これはバグですか、何か間違っていますか?任意の回避策?例のコードは、ファイルgui.pyに生成され、私のクラスは内部です

答えて

1

okが、基本的に私は手動でモジュールのグローバルdictionayへの参照を追加

を動作するようです醜い回避策を見つけましたファイルmygrid.py

import mygrid 
import gui 
import sys 
setattr(sys.modules["gui"], "mygrid", mygrid) 
2

あなたの回避策は数ヶ月間私を助けました。私は最終的にC++のみためを述べheaderフィールドのヘルプを、無視され、そこに私は私のサブクラスを持っているモジュール名を示し今日まで

。これで、生成されたクラスはサブクラスの定義を適切にインポートします。

headerフィールドは、wxFormBuilder GUIのsubclassフィールドのすぐ下にあります。 wxFormBuilderプロジェクトを手動で編集する場合は、<property name="subclass">mygrid; </property><property name="subclass">mygrid; mygrid</property>に置き換えてください。再生した後、gui.pyにfrom mygrid import mygrid行が表示されます。

関連する問題