closeEvent ist eine Memberfunktion von QWidget. Von QWidget ist so gut wie alles abgeleitet, was du so auf den Bildschirm bringen kannst (auch QMessageBox). Du mußt dir als deine eigene MessageBox von QMessageBox ableiten und die closeEvent Methode überschreiben.
Irgendwie so:
C++:
void MyMessageBox::closeEvent( QCloseEvent* ce ) { // irgendwas machen ... ce->accept(); oder ce->ignore(); }
Nein du musst einfach eine eigene Klasse von QMainWindow ableiten und dann in den protected-Teil einfach die Funktion virtual void closeEvent() reinschreiben und das dann implementieren. -- All parts should go together without forcing. ... By all means, do not use a hammer. (IBM maintenance manual, 1925)
-- All parts should go together without forcing. ... By all means, do not use a hammer. (IBM maintenance manual, 1925)Dieser Post wurde am 25.11.2003 um 13:26 Uhr von Loddab editiert.
Ja, richtig. Hab die Frage nicht richtig gelesen. Dachte es soll überprüft werden ob die Messagebox geschlossen werden soll :-) Prinzip ist ja das gleiche.
Also ich habe jetzt den code (" protected: virtual void closeEvent;") in meine Klasse einefügt, und in meiner main.cpp ist eh alles so wie es im 2. code steht, aber dann kamen nur Fehler beim Compilieren. Ich habe es so einefügt:
C++:
protected: virtualvoid closeEvent;
void Test::closeEvent(QCloseEvent* ce) { // hier mal schauen ob wirklcih beendet werden soll if (ende) ce->accept(); else ce->ignore(); }
Dann kamen die Fehler beim compilieren:
Code:
test.h:175: error: variable or field `closeEvent' declared void test.h:175: error: `closeEvent' declared as a `virtual' field test.h:178: warning: extra qualification `Test::' on member `closeEvent' ignored test.h:184: error: declaration of `void Test::closeEvent(QCloseEvent*)' test.h:175: error: conflicts with previous declaration `int Test::closeEvent' test.h: In member function `virtual void Test::closeEvent(QCloseEvent*)': test.h:180: error: `ende' undeclared (first use this function) test.h:180: error: (Each undeclared identifier is reported only once for each function it appears in.)
Sorry ich bin halt ein neuling
Bearbeitung von loddab:
code-Tags gesetzt
Dieser Post wurde am 25.11.2003 um 13:25 Uhr von Loddab editiert.