1

私は2つのウィンドウを扱っています。1つはQtDesignerによって作成され、test.pyプログラムにインポートします。私がしたことテストプログラムでウィジェットを作成し、それにボタンを追加してクリックイベントでQt Designerによって作成された他のウィンドウ(gui1.py)をポップアップしようとしましたが、ポップアップしません。行ごとのデバッグでは、行番号35test.pyでこのコマンド「myapp2= MyForm()」を実行した後、このメッセージが表示されます。

QCoreApplication :: exec:イベントループはすでに実行されています

ターミナルでEnterキーを押すと、もう一方のウィンドウがポップアップします。

私はどこが間違っているのか混乱しています。

test.pygui1.py に感謝 します

4

1 に答える 1

3

他のウィンドウが表示されない理由は、そのウィンドウへの参照を保持していないため、表示された直後にガベージコレクションが行われるためです。

この問題を解決するには、ウィンドウインスタンスを属性として保存するか、親を指定します。

def local_manag(self):
    print "pressed"
    # store it as an attribute
    self.myapp2 = MyForm()
    self.myapp2.show()
    # or give it a parent
    # myapp2 = MyForm(self)
    # myapp2.show()
于 2012-08-16T23:33:56.853 に答える