Seite 1 von 1
Hintergrundfenster inaktiv machen
Verfasst: 8. Januar 2007 15:30
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
Verfasst: 8. Januar 2007 16:00
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.
Verfasst: 8. Januar 2007 19:21
von uhu01
Hy!
Was spricht dagegen das zweite Fenster Modal zu öffnen?
mfg
uhu01
Verfasst: 8. Januar 2007 22:47
von Anfänger
Wie öffne ich denn das zweite Fenster modal?
Verfasst: 8. Januar 2007 23:56
von Anfänger
Habe das closeEvent implementiert, allerdings reagiert das Programm nicht darauf. Worauf könnte das liegen?

ch habe eine Klasse, die von QWidget ableite und in dieser Klasse erzeuge ich im Konstruktor ein Fenster...)
Verfasst: 9. Januar 2007 06:31
von Christian81
Als würde man gegen eine Wand reden

Verfasst: 9. Januar 2007 07:59
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
Verfasst: 9. Januar 2007 10:55
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;
}
Verfasst: 9. Januar 2007 11:02
von Christian81
Anfänger hat geschrieben:@christian:
Mein Widget ist nicht parent
Und was hindert Dich daran?
Verfasst: 9. Januar 2007 11:06
von Anfänger
Naja, habe es versucht dies zu machen, aber auch dann kam nicht das gewünschte Ergebnis.