Ich versuche eine Warnmeldung zu machen, die nach einigen Sekunden automatisch verschwindet. Ich habe diesen Code getan:pyqt: messagebox wird automatisch nach einigen Sekunden geschlossen
def warning(self):
messagebox = QtGui.QMessageBox(self)
messagebox.setWindowTitle("wait")
messagebox.setText("wait (closing automatically in {0} secondes.)".format(3))
messagebox.setStandardButtons(messagebox.NoButton)
self.timer2 = QtCore.QTimer()
self.time_to_wait = 3
def close_messagebox(e):
e.accept()
self.timer2.stop()
self.time_to_wait = 3
def decompte():
messagebox.setText("wait (closing automatically in {0} secondes.)".format(self.time_to_wait))
if self.time_to_wait <= 0:
messagebox.closeEvent = close_messagebox
messagebox.close()
self.time_to_wait -= 1
self.connect(self.timer2,QtCore.SIGNAL("timeout()"),decompte)
self.timer2.start(1000)
messagebox.exec_()
Es funktioniert eigentlich in Ordnung, für den automatischen Schließteil. Mein Problem ist, dass, wenn jemand versucht, es vor den paar Sekunden manuell zu schließen, durch Klicken auf die x-Schaltfläche des Fensters, das Meldungsfeld nie geschlossen wird. Die "Wartezeit" wird negativ, das Meldungsfeld zeigt z. B. "automatisch geschlossen in -4 Sekunden" an und wird nie geschlossen.
Irgendeine Idee, wie ich das vermeiden könnte? Grüße
mit meiner Lösung versuchen – eyllanesc