2
在我的主應用程序中,我打開一個QDialog,並從此QDialog中打開/顯示另一個QDialog。與其重點展示第二個對話框不同,它出現在我的主應用程序後面,並且被阻止/禁用,我不能使用它。各形式是在一個單獨的文件:另一個QDialog的QDialog未顯示
在mainform.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_Form1.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()
...
在文件UI_Form2.py
:
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'並看看你的問題嗎? –
確保兩個對話框都不是模態 – Mailerdaimon
@ Tiger-222我編輯了顯示按鈕聲明的代碼。因此,mainform.py創建主GUI。它包含一個打開第一個對話框的按鈕。第一個對話框位於文件UI_Form1.py中,它包含一個打開第二個對話框的按鈕。所以,這個第二個對話框應該出現在第一個對話框的前面,但是它卻在主窗口後面被禁用。希望這會有所幫助 –