前言
虽然能从单词的字面意思大致理解这些函数的意思,但是总感觉不出来它们的区别以及用法,特地去研究一下
正文
在 Qt 中,quit
、exit
和 close
都是用于终止程序或关闭窗口的方法
1. QApplication::quit()
- 注意:注意
quit()
并不是QApplication
的原生函数,它是继承自QCoreApplication
的quit
函数,其效果和QCoreApplication::quit()
一样 - 作用:
quit()
是一个静态函数,用于退出整个 Qt 应用程序。 - 工作原理:当调用
quit()
时,它会退出主事件循环,触发QApplication::exec()
返回,并关闭所有打开的窗口。程序会完全终止。 - 使用场景:通常用于在应用程序中实现“退出”功能,比如在菜单项“退出”上绑定这个操作。
2. QCoreApplication::exit(int returnCode = 0)
- 作用:
exit()
和quit()
类似,也是用于退出应用程序。 - 工作原理:
exit()
可以指定一个返回代码(returnCode
),该代码将在应用程序退出时返回给操作系统。它同样会结束主事件循环并关闭所有窗口。 - 使用场景:与
quit()
类似,但exit()
更适合在需要返回特定退出代码的场景中使用。
3. QWidget::close()
- 作用:
close()
是QWidget
类的成员函数,用于关闭单个窗口或控件。 - 工作原理:调用
close()
会尝试关闭该窗口或控件。如果该窗口是主窗口,且所有子窗口都已关闭,应用程序可能会退出。关闭前会触发closeEvent
,可在此事件中取消关闭操作。 - 使用场景:适用于关闭单个窗口或控件的场景,比如“关闭”按钮的操作。