J'utilise un QMessageBox pour dire à l'utilisateur si un champ qu'il a entré est incorrect ou manquant avant de soumettre le formulaire principal qui déclenche l'exécution. Actuellement, lorsque le QMessageBox apparaît, la fenêtre principale disparaît (je pensais qu'elle resterait derrière elle mais modale) et lorsque vous cliquez sur OK, l'application entière se ferme. J'ai regardé des exemples, mais je ne peux pas dire ce que je fais mal. Quelqu'un pourrait-il m'aider?Quelle est la meilleure façon d'utiliser un QMessageBox et de revenir au formulaire principal après avoir cliqué sur OK dans PyQt?
est ici ce morceau de code:
def isComplete(self):
complete = True
# check field
variable = self.dlg.ui.txtField.text()
if variable:
# got a non-empty string
else:
complete = False
msgBox = QtGui.QMessageBox()
msgBox.setText("Please fill in all required fields")
msgBox.exec_()
return complete
def run(self):
# show dialog
self.dlg.show()
# run the dialog event loop
result = self.dlg.exec_()
# check necessary fields
complete = self.isComplete()
# see if OK was pressed and fields are complete
if (result and complete):
self.runCalcs()
Ce n'est pas un exemple entièrement runnable. Je ne peux même pas dire si le msgBox est un enfant de main ou non. – user1767754