【发布时间】:2019-12-15 16:58:21
【问题描述】:
在打开一个QMainWindow之前发生了登录,有3种可能的结果,一个错误,一个老师和一个用户,如果登录结果是用户必须打开一个QMainWindow pro用户,如果他是老师他的QMainWindow。
LoginDialog login;
login.exec();
switch(login.result()){
case LoginResult::NONE:
qDebug() << "None";
break;
case LoginResult::PROF:
qDebug() << "Prof";
break;
case LoginResult::USER:
{
MainWindow w;
w.show();
}
break;
case LoginResult::ERROR:
Database::Terminate();
return -1;
}
问题在于,在机箱内部,窗口仅打开不到一秒钟并自动关闭,在开关外部,窗口显示并保持应有的状态。
为什么会这样?
【问题讨论】:
-
MainWindow对象立即超出范围。 -
你在显示窗口后给
app.exec()打电话了吗? -
@MaxiMouse 在函数末尾
return app.exec()