Anwendung beenden via DialogButton " Abbrechen "
-
Mineralwater
- Beiträge: 29
- Registriert: 6. Mai 2009 16:44
- Kontaktdaten:
Anwendung beenden via DialogButton " Abbrechen "
Hallo Leute!
Ich habe mich seit ein paar Wochen an die C++ Programmierung.
Mit Qt habe ich vorher noch gar nicht mit gearbeitet, dass sollte sich nun ändern.
Naja das Zeil was ich mir gesetzt habe ist bestimmt sehr leicht für den einen oder anderen, konnte auch schon bissle was zusammenbasteln.
Das Problem ist allerdings das ich es nicht schaffe über den Befehl qApp->quit(); bspw die Anwendung zu killen sobald im Dialog auf Abbrechen gedrückt wurde.
Ziel des ganzen ist eigentlich später das "MainWindow" erst dann angezeigt wird wenn der LoginDialog ausgewertet wurde und die Authentifizierung erfolgreich war. Anderenfalls soll das komplette Programm beendet werden.
Ich hab einfach mal das Projekt komplett angehängt, hoffe ich habs verständlich geschrieben, ansonsten fragt doch bitte einfach nochmal nach - werde schnellstmöglich zurück schreiben.
Vielen Dank schonmal im Vorraus!
Ich habe mich seit ein paar Wochen an die C++ Programmierung.
Mit Qt habe ich vorher noch gar nicht mit gearbeitet, dass sollte sich nun ändern.
Naja das Zeil was ich mir gesetzt habe ist bestimmt sehr leicht für den einen oder anderen, konnte auch schon bissle was zusammenbasteln.
Das Problem ist allerdings das ich es nicht schaffe über den Befehl qApp->quit(); bspw die Anwendung zu killen sobald im Dialog auf Abbrechen gedrückt wurde.
Ziel des ganzen ist eigentlich später das "MainWindow" erst dann angezeigt wird wenn der LoginDialog ausgewertet wurde und die Authentifizierung erfolgreich war. Anderenfalls soll das komplette Programm beendet werden.
Ich hab einfach mal das Projekt komplett angehängt, hoffe ich habs verständlich geschrieben, ansonsten fragt doch bitte einfach nochmal nach - werde schnellstmöglich zurück schreiben.
Vielen Dank schonmal im Vorraus!
- Dateianhänge
-
- Netzwerk.zip
- (101.46 KiB) 157-mal heruntergeladen
-
HappyEnding
- Beiträge: 26
- Registriert: 5. März 2009 14:15
-
Mineralwater
- Beiträge: 29
- Registriert: 6. Mai 2009 16:44
- Kontaktdaten:
Du meinst beispielsweise durch ein reject(); ?
Das ganze hab ich bereits versucht nur wenn ich bspw. in der Funktion
Warscheinlich hab ich einfach einen Gedankenfehler oder etwas falsch vestanden, allerdings funktionierte das ganze leider nicht so bei mir.
Danke schonmal
Das ganze hab ich bereits versucht nur wenn ich bspw. in der Funktion
Code: Alles auswählen
MainWindow::login(){
...
if(loginDialog->exec()){
// ... alles okay, kein Abbruch nötig
}
else{
//... Abbruch nötig
qApp->quit(); // Anwendung soll gekillt werden.
}
}Danke schonmal
Code: Alles auswählen
mainwindow.cpp:2:25: error: LoginDialog.h: Datei oder Verzeichnis nicht gefunden
mainwindow.cpp: In member function ‘void MainWindow::login()’:
mainwindow.cpp:17: error: ‘LoginDialog’ was not declared in this scope
mainwindow.cpp:17: error: ‘loginDialog’ was not declared in this scope
mainwindow.cpp:17: error: expected type-specifier before ‘LoginDialog’
mainwindow.cpp:17: error: expected `;' before ‘LoginDialog’
mainwindow.cpp:24: error: ‘qApp’ was not declared in this scope
-
Mineralwater
- Beiträge: 29
- Registriert: 6. Mai 2009 16:44
- Kontaktdaten:
@Upsala:
Ehm ja okay das bläut natürlich ein bezüglich der Eventloop.
Das mit dem "Single-Shot-Timer" sagt mir nun so als blutiger Anfänger nicht ganz so viel.
Mal schaun ob ich was in der Doku dazu finde. Vielleicht gibts ja noch mehrere verschiedene Möglichkeiten?
Wäre natürlich für jeden Tipp dankbar.
Dir Upsala auch schonmal ein dickes Danke.
= )
// Nachtrag:
unter
http://doc.trolltech.com/4.5/qtimer.htm ... eShot-prop würde ich fündig, allerdings stelle ich mir gerade die Frage was das bringen soll.
Denn selbst wenn ich den LoginDialog zeitlich gesteuert aufrufe ändert es doch nichts an der Tatsache das ich die Eventloop noch nicht erreicht habe oder versteh ich da etwas falsch? (Beziehe das gerade mal auf das Beispiel mit dem was dort mit main(){..} angegeben ist.
Gruß
Ehm ja okay das bläut natürlich ein bezüglich der Eventloop.
Das mit dem "Single-Shot-Timer" sagt mir nun so als blutiger Anfänger nicht ganz so viel.
Mal schaun ob ich was in der Doku dazu finde. Vielleicht gibts ja noch mehrere verschiedene Möglichkeiten?
Wäre natürlich für jeden Tipp dankbar.
Dir Upsala auch schonmal ein dickes Danke.
= )
// Nachtrag:
unter
http://doc.trolltech.com/4.5/qtimer.htm ... eShot-prop würde ich fündig, allerdings stelle ich mir gerade die Frage was das bringen soll.
Denn selbst wenn ich den LoginDialog zeitlich gesteuert aufrufe ändert es doch nichts an der Tatsache das ich die Eventloop noch nicht erreicht habe oder versteh ich da etwas falsch? (Beziehe das gerade mal auf das Beispiel mit dem was dort mit main(){..} angegeben ist.
Gruß
-
Mineralwater
- Beiträge: 29
- Registriert: 6. Mai 2009 16:44
- Kontaktdaten:
soweit verstanden okay, aber...
wenn ich in dem Konstruktor von MainWindow(); nun also eine Funktion login(); aufrufe welche allerdings ja erst nach dem ersten Lauf des Eventloops greift, bedeutet das ja zwangsweise mein Konstruktor von MainWindow(); einmal durchgelaufen ist und dann bereits ein false erhalten hat vom Login. Schließlich konnte er keine Eingabe ausfindig machen weil der Dialog für den Benutzer nie vorhanden war.
wenn ich in dem Konstruktor von MainWindow(); nun also eine Funktion login(); aufrufe welche allerdings ja erst nach dem ersten Lauf des Eventloops greift, bedeutet das ja zwangsweise mein Konstruktor von MainWindow(); einmal durchgelaufen ist und dann bereits ein false erhalten hat vom Login. Schließlich konnte er keine Eingabe ausfindig machen weil der Dialog für den Benutzer nie vorhanden war.
Hallo,
ich realisiere Login-Dialoge nicht im Konstruktor des Hauptfensters, sondern in der main.cpp:
ich realisiere Login-Dialoge nicht im Konstruktor des Hauptfensters, sondern in der main.cpp:
Code: Alles auswählen
//show login dialog
myLoginDialog *pLoginDialog=new myLoginDialog();
int iLoginResult=pLoginDialog->exec();
delete pLoginDialog;
[...]
if (!iLoginResult)
{
//Mainwindow erzeugen und anzeigen
//start event loop
result=app.exec();
} else
return ERR_LOGIN_FAILED;
-
Mineralwater
- Beiträge: 29
- Registriert: 6. Mai 2009 16:44
- Kontaktdaten: