Ho un'applicazione Qt che utilizza una classe precedente QMainWindow
per l'interfaccia utente principale. All'avvio, desidero eseguire alcuni controlli di sicurezza e, in caso di errore, visualizzare un messaggio all'utente e chiudere la finestra principale. Attualmente eseguo questi controlli nel costruttore QMainWindow
, ma se chiamo il metodo close
, non accade nulla e l'applicazione continua a funzionare. Per esempio:Chiusura di QMainWindow all'avvio?
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();
}
}
In alternativa avrei potuto fare i controlli nella funzione principale, ma poi ho perso la possibilità di visualizzare una finestra di messaggio specifico della lingua (la tr
macro funziona solo in una classe -derived QObject
tramite gli sguardi di cose.)
Qualche idea su come chiudere la finestra principale all'avvio o rendere la macro tr
al di fuori di una classe derivata QObject
?