Seite 1 von 1

[gelöst] Zweit-Fenster erscheint nicht

Verfasst: 12. Januar 2010 18:59
von Hol_den_Wagen
Hallo zusammen,

bin ganz neu hier im Forum und überfall euch gleich mal mit einem Problem :-) Obwohl das was ich machen möchte sicher ein ganz alltägliches Vorhaben ist, bekomm ichs nicht hin und habe auch per Forumssuche nur einen Lösungsvorschlag gefunden der bei mir aber nicht, bzw nur teilweise funktioniert hat.

Vorhaben: Aus einem Hauptfenster (Main Window) heraus soll nach drücken eines Buttons ein weiteres Fenster (About Window) geöffnet werden.


Auszug aus mainwindow.cpp:

Code: Alles auswählen

//Slot, welcher mit dem clicken des AboutButtons connected ist
void MainWindow::onButtonAboutClicked()
{
	About aboutwindow(this);
	aboutwindow.show();
}

Auszug aus aboutwindow.cpp

Code: Alles auswählen

//AboutWindow ebenso wie MainWindow mit Qt Designer erstellt
About::About(QWidget *parent)
	: QWidget(parent)
{
	about_gui.setupUi(this);
}

Auszug aus aboutwindow.h

Code: Alles auswählen

#include "ui_about.h"
#include <QtGui/QWidget>

class About : public QWidget
{
	Q_OBJECT

public:
	About(QWidget *parent);
	~About();

private:
	Ui::About_GUI about_gui;

};

Wenn ich nun mein Programm starte und den About Button drücke passiert rein gar nichts. Hier im Forum habe ich einen Beitrag gefunden der im Prinzip genau das selbe Problem beschreibt: http://www.qtforum.de/forum/viewtopic.p ... 7c6c0a6662
Die dort gefundene Lösung, die AboutWindow-Klasse einfach von QDialog anstatt von QWidget abzuleiten führt bei mir zwar dazu, dass ich nach drücken des About Buttons sehe dass ein neues Fenster geöffnet wird, dieses wird aber auch sofort wieder geschlossen. Man erkennt zwar, dass es sich um das Fenster handelt welches ich im Qt Designer erstellt habe, aber in dem Moment wo es geöffnet wurde ist es auch schon wieder weg.

Ich finde meinen Fehler leider nicht und hoffe dass mir jemand von euch helfen kann.

Viele Grüße,
Tom

Verfasst: 12. Januar 2010 19:08
von AuE
Dein Problem ist die Lebenszeit der Variablen (Dlg den du zeigen willst) -> du erstellst es und verlässt danach sofort wieder den Scope der variablen was diese dann zerstört!

Verfasst: 12. Januar 2010 19:33
von upsala

Verfasst: 12. Januar 2010 20:56
von Hol_den_Wagen
super, vielen dank für die schnelle hilfe! und sorry dass ichs nicht selber gefunden hab ;-)

lg, tom