2017-01-15 23 views
0

私はPythonでQt Designer用のウィジェットを作っています。 私の問題は、は、ウィジェットがQtデザイナーにあるときにいくつかのコードが実行されないようにして、アプリケーションの実行時にのみ実行することです。 qtdesigner.designerModeのようなものがありますか?Qt Creatorのデザインモードはありますか?

+0

を私は迷惑を正確に何を理解したよごめんなさい尋ねている。 Qtデザイナーで作成され、現在Qtデザイナーで開いているウィジェットを使用している場合、あなたのpythonプログラムが実行されないようにしますか? – airhuff

+0

モデルとビューが適切に分離されていますか?私はこれが必要であるとは思わない。 –

答えて

0

申し訳ありませんが、私のウィジェットのinit関数にコードを入れて、それがデザインモード(Qtデザイナー)か、実行モード(アプリケーションが実行されているか)を確認できるようにします。 )。 は最後に、私はそれを発見し、それは次のようになります。

QtGui.qApp.applicationName() 

戻っ「パイソン」場合、それは実行モードであります。

"Designer"を返す場合は、デザインモードです。

0

qtデザイナープラグイン内の情報を渡すことができます。

class MyCustomWidget(self): 
    def __init__(self, parent, qt_designer=False): 
     if self._qt_designer: 
      # only while inside qt designer 
     # do init 

class MyPlugin(QPyDesignerCustomWidgetPlugin): 
    def createWidget(self, parent): 
     return MyCustomWidget(parent, qt_designer=True) 

か、__init__に別の引数を追加するために好きではない場合、あなたが何か行うことができます:このようなたとえば

class MyCustomWidget(self): 
    _qt_designer = False 
    def __init__(self, parent): 
     if self._qt_designer: 
      # only while inside qt designer 
     # do init 

class MyPlugin(QPyDesignerCustomWidgetPlugin): 
    def __init__(self, parent=None): 
     super().__init__(parent) 
     MyCustomWidget._qt_designer = True # set class variable 

    def createWidget(self, parent): 
     return MyCustomWidget(parent) 
関連する問題