私の主なアプリケーションでは、QDialogを開き、このQDialogから別のものを開く/表示したいと思います。この2番目のダイアログに焦点を当てて表示するのではなく、メインアプリケーションの背後に表示され、ブロックされている/無効になっています。A別のQDialogからのQDialogが表示されない
mainform.pyにおいて:ファイルUI_Form1.pyで
form_gui = uic.loadUiType("mainform.ui")[0] # Load the UI
class MainForm(QtGui.QMainWindow, form_gui):
def __init__(self, parent=None):
QtGui.QMainWindow.__init__(self, parent)
self.btnOpenForm1.clicked.connect(self.showFirstDialog)
...
def showFirstDialog(self):
browser1 = UI_Form1(self)
browser1.setWindowTitle('UI_Form1')
browser1.show()
...
if __name__ == "__main__":
app = QApplication(sys.argv)
myapp = MVSGUI()
myapp.show()
sys.exit(app.exec_())
:ファイルUI_Form2.pyで
form_gui = uic.loadUiType("uiform1.ui")[0] # Load the UI
class UI_Form1(QtGui.QDialog, form_gui):
def __init__(self, parent):
super(UI_Form1, self).__init__(parent)
self.btnOpenForm2.clicked.connect(self.showSecondDialog)
...
def showSecondDialog(self):
browser2 = UI_Form2(self)
browser2.setWindowTitle('UI_Form2')
browser2.show()
...
:
form_gui = uic.loadUiType("uiform2.ui")[0] # Load the UI
class UI_Form2(QtGui.QDialog, form_gui):
def __init__(self, parent):
super(UI_Form2, self).__init__(parent)
...
各形態は、別々のファイルであります
何が間違っているのかを推測するのは簡単かもしれませんが、解決方法を見つけることはできません。
コードで再生することは容易ではありません。 'python script.py'を実行し、あなたの問題を見るための最小限のスクリプトを教えてください。 –
は、両方のダイアログは、私はプッシュボタンの宣言を示すコードを編集したタイガー・222 @ – Mailerdaimon
モーダルされていないことを確認してください。したがって、mainform.pyはメインGUIを作成します。最初のダイアログを開くためのボタンがあります。この最初のダイアログはファイルUI_Form1.pyにあり、2番目のダイアログを開くボタンがあります。したがって、この2番目のダイアログは最初のダイアログの前に表示されますが、代わりにメインウィンドウの後ろで無効になります。どのように私は、彼らはモーダルされていないことを確認することができ、これは –