QT程序的退出逻辑
来源:互联网 发布:360皇图坐骑进阶数据 编辑:程序博客网 时间:2024/05/05 23:55
初学QT编程,程序有一个主窗口,在出窗口显示前有一个登陆窗口,登陆成功后显示主窗口,登陆失败退出程序,根据以往的编程经验,我使用了下面的实现方法:
main.cpp
int main(int argc, char *argv[]) {
QApplication a(argc, argv);
MainWindow w;
w.login();
return a.exec();
}
MainWindow.cpp中的login过程和关闭是这样的
void MainWindow::login() {
Login l;
if (l.exec() == QDialog::Accepted) {
l.hide();
this->show();
} else {
this->close();
}
}
void MainWindow::closeEvent(QCloseEvent *event) {
event->accept();
}
感觉逻辑上很正确,就是登陆不成功,窗口都退出了,进程依然在内存中运行,使用用qApp->quit();也不能使进程结束。翻阅资料才明白,l.exec() 是模态对话框,在执行退出程序的close quit等函数时,a.exec()还没有执行,事件循环还没有建立,所有退出事件都不起作用。最后用了这样的机制才达到如期目的:
main函数不变化
login变成:
MainWindow::~MainWindow() {
delete l;
}
void MainWindow::login(){
l->show();
}
void MainWindow::loginFinshed(bool ok){//login发射loginFinshed信号
if(ok){
l->hide();
this->show();
}else{
qApp->quit();
}
}
- QT程序的退出逻辑
- QT程序的退出逻辑
- Qt登录窗口的退出逻辑
- Qt的Window Close与程序退出
- Qt:程序异常退出
- QT程序退出问题
- Qt程序退出断言问题
- 在Qt对话框类的构造函数中 退出程序
- android 程序完全退出,,通知跳转 逻辑
- 关于 qt程序退出出现“已停止工作”程序奔溃问题 的解决方法
- QT在构造函数中退出程序
- 通过线程控制QT控制台程序退出
- QT在构造函数中退出程序
- QT在构造函数中退出程序
- 登录和退出登录的操作逻辑
- wxPython程序的退出
- Android程序的退出
- 完全的退出程序
- 常用宏定义
- Java连接Access数据库_网络安全.doc
- sql优化
- 国家
- 简单的小结 关于Unique约束
- QT程序的退出逻辑
- 输出一个按下列规律排列的M*N矩阵: Line1: 1 6 7 Line2 : 2 5 8 Line3: 3 4 9
- py2exe初接触
- 古诗两首
- 学习方法
- 东软重聚
- memset函数: 内存初始化介绍
- Unix系列shell程序编写
- Update 两个表之间数据更新