首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >用户关闭与系统中止的Qt QMainWindow差异

用户关闭与系统中止的Qt QMainWindow差异
EN

Stack Overflow用户
提问于 2011-11-22 19:05:43
回答 1查看 596关注 0票数 0

您能告诉我如何判断用户发起的QMainWindow关闭事件和Linux中的SIG_KILL或Windows中的TerminateProcess()异常终止吗?

这是因为紧急程度的差异是存在的。

我可以通过用户拒绝关闭,或者用户可以根据需要考虑。

但我必须在中止时尽快保存中间结果和当前状态,或者直到用户进行下一次致命中止尝试。

我可以尝试在closeEvent()上分析鼠标位置。但这取决于任务栏的外观。我可以将应用程序设置为非最小化状态,并等待用户的下一步操作。但在中止的情况下,这不是一个好的行为。用户可以尝试下一个致命的中止操作,否则保存时间将会丢失。

致以最好的问候,Gennady

EN

回答 1

Stack Overflow用户

发布于 2011-11-22 19:13:28

如果您的应用程序接收到SIGKILL,它将没有时间执行任何操作。它被当场终止。你不能捕捉或阻止那个信号。因此,您不能将SIGKILL与正常的应用程序关闭“区分”:您不会知道自己何时被强行终止。(TerminateProcess()也是如此。)

如果您需要在应用程序正常关闭期间执行某些操作,则应该将清理例程连接到QCoreApplication::aboutToQuit()信号。检查文档,这正是它设计的目的。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/8225763

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档