Seite 1 von 1

[gelöst] Dialog schließt MainWindow

Verfasst: 28. Juni 2007 11:28
von hbc
Hallo,

in meiner Anwendung sollen mehrere Dialoge aufgerufen werden um bestimmte Eingaben zu erhalten.
Nun das Problem, ein Dialog schließt nicht nur sich selbst sondern auch das mainWindow, beim betätigen des ok Butten und des cancelButton.
folgenden Code habe ich verwendet:

Aufruf:

Code: Alles auswählen

connect(actionAdressbuch, SIGNAL(triggered(bool)), this, SLOT(AB()));
Slot:

Code: Alles auswählen

void MainWindowImpl::AB()
{
	Adressbuch adresse;
	adresse.exec();
	
}
und die Adressbuch.cpp

Code: Alles auswählen

#include "Adressbuch.h"
//
Adressbuch::Adressbuch( QWidget * parent, Qt::WFlags f) 
	: QDialog(parent, f)
{
	setupUi(this);
	connect(okButton, SIGNAL(clicked()), this, SLOT(accept()));
    connect(cancelButton, SIGNAL(clicked()), this, SLOT(reject()));
	connect(SpeichernButton, SIGNAL(clicked()), this, SLOT(Speichern()));
}

void Adressbuch::Speichern()
{
	
}
was ist da falsch??

Verfasst: 28. Juni 2007 12:05
von Volker
Das Problem liegt vermutlich eher in der Instanzierung deines MainWindows. Im Code den Du angegeben hast, kann ich beim drüberfliegen keinen Fehler finden.

Verfasst: 28. Juni 2007 12:12
von @udisello
Bin mir nicht sicher, aber vielleicht hilft

Code: Alles auswählen

Adressbuch adresse( this ); 
statt

Code: Alles auswählen

Adressbuch adresse; 

Verfasst: 28. Juni 2007 12:30
von upsala
Das würde ich auf keinen Fall machen:
Adressbuch adresse( this );
Und @udisello empfehle ich dringend die Doku zu QObject...

Verfasst: 28. Juni 2007 12:44
von @udisello
Begründung? Warum kann ich nicht das Widget, in dem sich die QAction befindet als Parent an den Konstruktor des Dialogs übergeben?

Verfasst: 28. Juni 2007 13:33
von MichaelS
QApplication hat eine Methode quitOnLastWindowClosed, die durchaus für ein überraschendes Programmende gut ist.

Hier der Auszug aus der Qt-Doku:
If this property is true, the applications quits when the last visible primary window (i.e. window with no parent) with the Qt::WA_QuitOnClose attribute set is closed. By default this attribute is set for all widgets except transient windows such as splash screens, tool windows, and popup menus
Diese Eigenschaft ist standardmäßig aktiviert. Deaktiviere die Eigenschaft doch einfach mal

Code: Alles auswählen

setQuitOnLastWindowClosed( false).
[/i]

Verfasst: 28. Juni 2007 20:31
von hbc
Danke für die Antworten, aber leider hat alles nicht geklappt, auch die Deaktivierung von quitOnLastWindowClosed hat kein Veränderung bewirkt :( , hat jemand noch eine Idee woran es liegen könnte?

Verfasst: 28. Juni 2007 21:53
von hbc
Ich habe das Problem durch neu erstellen des Dialoges beseitigt, woran es lag, dass es beim ersten mal nicht funktionierte kann ich nicht nachvollziehen.