Nieuws:

Welkom, Gast. Alsjeblieft inloggen of registreren.
Heb je de activerings-mail niet ontvangen?

Auteur Topic: python pyqt6: QtEventLoop en closeEvent  (gelezen 838 keer)

Offline peer

  • Lid
python pyqt6: QtEventLoop en closeEvent
« Gepost op: 2025/04/12, 13:27:44 »
Ik maak een python programma met PyQT6. Hierin zitte twee windows: mainWindow en editWindow.
Om het maanWindow te laten wachten tot het editWindow klaar is gebruik  ik QEventloop. Dat ziet er als volgt uit

loop = QEventLoop()
        self.editWindow.show()     
        self.editWindow.cancelButton.clicked.connect(loop.quit)
        self.editWindow.saveButton.clicked.connect(loop.quit)
        #self.editWindow.closeEvent(self).connect(loop.quit)
        loop.exec()
Dit werkt prima. Als ik op de Cancelbutton of saveButton druk in de editWindow. Dan zie ik dat de mainWindow inderdaad wacht. Dat is prima.

Maar ik wil eigenlijk de QEventloop koppelen aan het closeEvent in de editWindow. Dan stopt de loop ook als er op het kruisje (rechtsboven)  in de editWindow. Met google kan ik hier geen antwoord op vinden. Heeft iemand een idee????

Offline peer

  • Lid
Re: python pyqt6: QtEventLoop en closeEvent
« Reactie #1 Gepost op: 2025/04/13, 11:41:03 »
Het is me niet gelukt om een antwoord op mijn vraag te vinden. Wel heb ik een alternatieve oplossing gevonden.

Ik heb het 'editWindow' gewijzigd van Qwidget naar QDialog. De widget QDialog toont een nieuw window maar laat de 'mainWindow'wachten totdat de QDialog gesloten wordt. En dat is precies wat ik wilde. Data uitwisselen tussen 'mainWindow'en 'EditWindow' laat ik lopen via een interface.

Dus mijn vraag is niet beantwoord maar mijn probleem is wel opgelost. Ik kan nu de 'editWindow' sluiten met de save-button zodat de data bewaard wordt en sluiten met de cancel-button of het kruisje.