zuerst mal Code:
main.cpp:
Code: Alles auswählen
#include <QtGui/QApplication>
#include "MainWindow.h"
int main(int argc, char *argv[])
{
QApplication a(argc, argv);
MainWindow window();
window.show();
return a.exec();
}
Code: Alles auswählen
#ifndef MAINWINDOW_H
#define MAINWINDOW_H
#include <QtGui>
class MainWindow : public QMainWindow
{
Q_OBJECT
public:
MainWindow(QWidget *parent = 0);
~MainWindow();
public slots:
void exitProgram();
};
#endif // MAINWINDOW_HCode: Alles auswählen
#include "MainWindow.h"
#include "ScalixLoginWindow.h"
MainWindow::MainWindow(QWidget *parent) : QMainWindow(parent) {
// Maximize the window by startup:
this->showMaximized();
// .....
// .....
// Show the login window:
dialog *win = new DialogXY;
int ret = win->exec();
if (ret != QDialog::Accepted) {
// Login dialog rejected, exit the application...
exitProgram();
}
}
/**
* Slot, which exits the program.
*/
void MainWindow::exitProgram() {
this->close();
}
MainWindow::~MainWindow()
{
//....
}Klickt man auf OK (accepted) soll der Loginprozess statt finden und das Programm starten.
Das Problem ist beim "Abbrechen". Klicke auf auf diesen Button, wird die Hauptanwendung wie gewollt geschlossen, aber diese öffnet sich beim ausführen von "a.exec()" in der main() sofort wieder neu, dieses mal aber ohne Dialogabfrage...
Warum tut er das??
// Edit:
Oder sollte ich den Loginvorgang in eine eigene Methode des Hauptfensters verlegen, welche aufgerufen wird, wenn a.exec() aufgerufen wird? (welches Signal gibt es hierfür)
Danke!