Ich habe eine Qt-Anwendung, die eine QMainWindow
-abgeleitete Klasse für die Hauptbenutzeroberfläche verwendet. Beim Start möchte ich einige Sicherheitsüberprüfungen durchführen und, falls sie fehlschlagen, dem Benutzer eine Nachricht anzeigen und das Hauptfenster schließen. Derzeit mache ich diese Prüfungen im QMainWindow
Konstruktor, aber wenn ich die close
Methode aufrufen, passiert nichts und die Anwendung läuft weiter. Zum Beispiel:Schließen eines QMainWindow beim Start?
MainWindow::MainWindow(QWidget *parent) : QMainWindow(parent)
{
setupUi(this);
...
if (checkFails())
{
QMessageBox::warning(this, tr("Error"), tr("You cannot run this app"));
// This has no effect
close();
}
}
Alternativ die Kontrollen in der Hauptfunktion konnte ich machen, aber dann verliere ich die Möglichkeit, ein sprachspezifische Meldungsfeld angezeigt werden (die tr
Makro funktioniert nur in einer QObject
abgeleiteten Klasse von den Blicken von Dinge.)
Irgendwelche Ideen, wie man das Hauptfenster beim Start schließt oder das tr
Makro arbeitet außerhalb einer QObject
abgeleiteten Klasse?