Seite 1 von 1

2. Fenster öffnen

Verfasst: 23. Oktober 2008 16:41
von MKay
Hi,

ich habe ein Problem ein 2. Fenster zu öffnen.
Ich habe folgende Klasse:

Code: Alles auswählen

public class About extends QWidget {
	public About(QWidget parent) {
		super(parent);
		
		QLabel lbl = new QLabel("sdfsdf");
		
        	QHBoxLayout mainLayout = new QHBoxLayout();
        	mainLayout.addWidget(lbl);
        	setLayout(mainLayout);
 	}
}
In meinem Hauptfenster, was ohne Probleme dargestellt wird, reagiere ich per Signal/Slot auf den Klick auf einen Button.
Dort wird ein neues Object vom Typ About erstellt und anschließend about.show() aufgerufen.
Doch nichts passiert. Die Funktion wird problemlos aufgerufen, doch es erscheint einfach kein neues Fenster.

Weiss jemand woran das liegen kann?

EDIT: Habe die Klasse jetzt einfach von QDialog abgeleitet. So funkioniert es :)
Jetzt habe ich eine andere Frage: Mein Programm läuft im Tray. Wenn ich über das Kontextmenü den AboutDialog aufrufe zeigt er mir das Fenster an. Wenn ich dann rechts oben auf das X klicke um das Fenster zu schließen beendet sich gleich das ganze Programm. Wie kann ich das verhindern?

Gruss
MKay

Verfasst: 27. Oktober 2008 14:08
von ArneStocker
Jetzt habe ich eine andere Frage: Mein Programm läuft im Tray.
Arbeitest Du auf dem Mac ?
Wie kann ich das verhindern?
Du könntest das Schließen verhindern, wenn Du die Methode closeEvent ableitest und in dieser Methode ein event.ignore() aufrufst. War es das was Du meintest ?

Gruß Arne

Verfasst: 27. Oktober 2008 14:56
von MKay
Arbeitest Du auf dem Mac ?
Nope, bin unter Kubuntu 8.04.

In meiner Haupt-Gui, die unter anderem das TrayIcon anzeigt habe ich folgendes:

Code: Alles auswählen

    @Override
    public void closeEvent(QCloseEvent e) {
    	e.ignore();
    	this.hide();
    }
Das funktioniert auch. Statt das Fenster zu schließen, wird es minimiert.

Per Klick in dieser Haupt-Gui wird ein neues Objekt vom Typ About erstellt (s.o.) und angezeigt. Das Problem ist, dass wenn ich das About-Fenster schließe, sich die Main-Gui ebenfalls schließt (trotz des e.ignore()). Es werden quasi alle Fenster geschlossen und mein Tray-Icon verschwindet auch.
Es bleiben nur noch die Threads am leben, die ich "manuell" gestartet habe.

Woran kann das liegen? Ich könnte euch auch den Source zur Verfügung stellen, wenn das hilft :D