添加链接
link管理
链接快照平台
  • 输入网页链接,自动生成快照
  • 标签化管理网页链接

qml 捕捉Alt+F4实现弹窗退出

前言

总所周知,Alt+F4是系统快捷键,可以直接强制关闭当前活动的应用程序,那么,如果我们的程序退出的时候有弹窗确认,而系统在捕获到Alt+F4快捷键也需要弹窗确认该怎么做呢,今天来解决这个问题。

正文

首先,我们知道Alt+F4快捷键是可以直接关闭应用程序,在Qt应用中,如果要在响应该快捷键的时候在应用程序中弹窗,有两种思路,一种是直接抓取该快捷键,一种是直接响应快捷键后的关闭函数。

如果是QWidget项目,抓取Alt+F4快捷键,有两种方式:响应nativeEvent事件去捕获,另一种是通过windows接口实现钩子操作去抓取该快捷键。 这两种方式不在此介绍,请参照文章:

​​Qt Alt+F4响应​​​​Qt程序如何屏蔽Alt+F4按键?​​

以上是QWidget项目可以选择的方式,如果是QML项目呢,最简单的方式就是直接响应快捷键后的关闭函数。

在window窗口中,响应closing信号:

{ ... property bool closeKeysWereTriggered: false ... onClosing: { if (!closeKeysWereTriggered) { close.accepted = false; exitDialog.open(); } } Dialog { id: exitDialog ... }}

这样就能解决在响应Alt+F4的时候弹窗提示了。

参考链接:https://forum.qt.io/topic/82768/getting-alt-f4-shortcut-not-working

版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们[email protected] 处理,核实后本网站将在24小时内删除侵权内容。