Hintergrundfenster inaktiv machen

Alles rund um die Programmierung mit Qt
Antworten
Anfänger
Beiträge: 34
Registriert: 11. März 2005 18:17

Hintergrundfenster inaktiv machen

Beitrag von Anfänger »

Hallo,

ich folgendes Problem: Und zwar habe ich zwei Fenster, wobei ich der Öffnung des zweiten Fensters das erste gerne inaktiv machen möchte.

Dies hat geklappt mit setDisabled(true).
Wie kann ich nun das CloseEvent des Fensters abfangen? Denn, bei der Schließung des zweiten Fensters soll mein erstes wieder aktiv werden (setEnabled(true) ).

Lg
Anfänger
Christian81
Beiträge: 7319
Registriert: 26. August 2004 14:11
Wohnort: Bremen
Kontaktdaten:

Beitrag von Christian81 »

Dafür ist der parent im Konstruktor von QWidget und allen abgeleiteten Klasen da. Wenn das eine Fenster das PArent vom anderen ist, wird es automatisch inaktiv.
MfG Christian

'Funktioniert nicht' ist keine Fehlerbeschreibung
uhu01
Beiträge: 150
Registriert: 10. Juli 2005 20:46

Beitrag von uhu01 »

Hy!

Was spricht dagegen das zweite Fenster Modal zu öffnen?

mfg
uhu01
Anfänger
Beiträge: 34
Registriert: 11. März 2005 18:17

Beitrag von Anfänger »

Wie öffne ich denn das zweite Fenster modal?
Anfänger
Beiträge: 34
Registriert: 11. März 2005 18:17

Beitrag von Anfänger »

Habe das closeEvent implementiert, allerdings reagiert das Programm nicht darauf. Worauf könnte das liegen?
(Ich habe eine Klasse, die von QWidget ableite und in dieser Klasse erzeuge ich im Konstruktor ein Fenster...)
Christian81
Beiträge: 7319
Registriert: 26. August 2004 14:11
Wohnort: Bremen
Kontaktdaten:

Beitrag von Christian81 »

Als würde man gegen eine Wand reden :(
MfG Christian

'Funktioniert nicht' ist keine Fehlerbeschreibung
uhu01
Beiträge: 150
Registriert: 10. Juli 2005 20:46

Beitrag von uhu01 »

Hy!
The most common way to display a modal dialog is to call its exec() function.
siehe auch hier: http://doc.trolltech.com/4.2/qdialog.html

mfg
uhu01
Anfänger
Beiträge: 34
Registriert: 11. März 2005 18:17

Beitrag von Anfänger »

@christian:

Mein Widget ist nicht parent, außerdem verstehe ich nicht, warum das CloseEvent nicht erkannt wird. Ich habe mein Widget wie folgt definiert:

in Anzeige.h
class Anzeige: public QWidget {
...
public:
Anzeige();
signals:
void closed();

protected:
void closeEvent(QCloseEvent *e);

};

in Anzeige.cpp:

Anzeige::Anzeige(){

QWidget *test = new QWidget();
...... // größe etc
}

void Anzeige::closeEvent(QCloseEvent *e){
e->accept();
cout << "test" << endl;
}
Christian81
Beiträge: 7319
Registriert: 26. August 2004 14:11
Wohnort: Bremen
Kontaktdaten:

Beitrag von Christian81 »

Anfänger hat geschrieben:@christian:

Mein Widget ist nicht parent
Und was hindert Dich daran?
MfG Christian

'Funktioniert nicht' ist keine Fehlerbeschreibung
Anfänger
Beiträge: 34
Registriert: 11. März 2005 18:17

Beitrag von Anfänger »

Naja, habe es versucht dies zu machen, aber auch dann kam nicht das gewünschte Ergebnis.
Antworten