QT 5.13 QML应用:捕获任务栏关闭事件并输出控制台日志
解决QML应用捕获关闭事件(含最小化后从任务栏关闭)的问题
针对QT 5.13版本的QML应用,你之前使用的activeChanged信号仅监听应用激活状态变化,最小化、切换到其他应用都会触发该信号,无法准确捕获应用关闭事件。正确的做法是监听Qt.application.aboutToQuit信号——这个信号会在应用即将退出时触发,无论关闭方式是从任务栏关闭最小化的应用、点击窗口关闭按钮,还是其他退出操作。
替换为以下代码即可实现需求:
Component.onCompleted: { Qt.application.aboutToQuit.connect(function() { console.log("Application closed (including from taskbar when minimized)") }) }
如果需要针对某个窗口的关闭事件(而非整个应用退出),可以给对应的Window组件绑定closing信号:
Window { id: mainWindow // ... 窗口其他属性配置 onClosing: { console.log("Main window is closing") // 若需要阻止窗口关闭,可设置 close.accepted = false } }
内容的提问来源于stack exchange,提问作者Praveenkumar Thulasiraman
相关产品推荐
相关产品推荐

