Dans mon application principale ouvrir un QDialog, et de ce QDialog je veux ouvrir/montrer les uns les autres. Au lieu de montrer cette deuxième boîte de dialogue avec l'accent sur elle, il apparaît derrière mon application principale et est bloqué/désactivé et je ne peux pas ne pas travailler avec elle. Chaque forme est dans un fichier séparé:A QDialog d'un autre QDialog ne figure pas
Dans le 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_())
dans le fichier 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()
...
dans le fichier 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)
...
Il peut être facile de deviner ce qui ne va pas, mais je ne trouve pas comment résoudre ce problème.
Il est difficile de reproduire avec votre code. Pourriez-vous nous donner le script minimal pour faire simplement 'python script.py' et voir votre problème? –
assurez-vous que les deux boîtes de dialogue ne sont pas modales – Mailerdaimon
@ Tiger-222 J'ai édité le code montrant la déclaration des boutons-poussoirs. Ainsi, mainform.py crée l'interface graphique principale. Il contient un bouton qui ouvre la première boîte de dialogue. Cette première boîte de dialogue se trouve dans le fichier UI_Form1.py, elle contient un bouton qui ouvre la deuxième boîte de dialogue. Ainsi, cette deuxième boîte de dialogue devrait apparaître devant la première boîte de dialogue, mais à la place elle s'ouvre désactivée derrière les fenêtres principales. Espérons que cela aide –