QDialog & CloseEvent

Alles rund um die Programmierung mit Qt
Antworten
joschika77
Beiträge: 45
Registriert: 19. Mai 2006 10:36
Wohnort: an der Ostsee

QDialog & CloseEvent

Beitrag von joschika77 »

Hi!

Wie kann ich den Klick auf das rote Kreuz zum Schließen abfangen?
Hab hier im Forum schon gesucht aber nichts in der Richtung gefunden.

Code: Alles auswählen

connect(this,SIGNAL(finished(int)),this,SLOT(closeDialog(int)));

void eAddressMasterData::closeDialog(int aResult)
{
	//qDebug()<<"Result:"<<aResult;
	if(isChanged)
		personDataChanged();
}
So hab ich es probiert und es geht auch, aber er schließt den Dialog sofort, während er die andere Funktion noch aufruft.Das soll er nicht tun.
Wie kann ich das anders regeln?
MfG
Wer Wind sät wird Sturm ernten!
macman
Beiträge: 1738
Registriert: 15. Juni 2005 13:33
Wohnort: Gütersloh
Kontaktdaten:

Re: QDialog & CloseEvent

Beitrag von macman »

Das Stichwort steht schon im Betreff, closeEvent. In den Beispielen gibt es einige, die den closeEvent abfangen. Im Prinzip musst Du den Event überschreiben und dann akzeptieren oder ignorieren.
joschika77
Beiträge: 45
Registriert: 19. Mai 2006 10:36
Wohnort: an der Ostsee

Beitrag von joschika77 »

Na ich muß das ja sicherlich mit einem connect lösen.Also überschreibe ich das CloseEvent, aber was für ein Signal verwende ich dazu?

Code: Alles auswählen

connect(this,SIGNAL(???),this,SLOT(closeEvent(QCloseEvent * event))); 
Mfg
Wer Wind sät wird Sturm ernten!
macman
Beiträge: 1738
Registriert: 15. Juni 2005 13:33
Wohnort: Gütersloh
Kontaktdaten:

Beitrag von macman »

Gar keins, closeEvent ist schon mit einem Event verbunden. Einfach überschreiben, fertig.

Code: Alles auswählen

void Dialog::closeEvent(QCloseEvent *ce)
{
	if ( mySave() )
		ce->accept();
	else
		ce->ignore();
}
joschika77
Beiträge: 45
Registriert: 19. Mai 2006 10:36
Wohnort: an der Ostsee

Beitrag von joschika77 »

Habs jetzt hinbekommen.Man brauch ja gar kein Signal.Einfach nur die CloseEvent überschreiben, eigenen Coden einfügen & danach event->accept() aufrufen. Danke dir für die Antwort.

MfG
Wer Wind sät wird Sturm ernten!
Antworten