Qt/C++ – 如何区分从外部应用程序关闭主窗口和单击标题栏上的关闭按钮?

问题描述 投票:0回答:1

我当前从主窗口退出时出现一个 QMessageBox,询问“您确定吗?”。通过 InnoSetup 安装程序文件更新应用程序时,安装程序尝试关闭主窗口,但是,“您确定吗?”按钮仍然出现,这是我不想要的。

我尝试检查

event->spontaneous()
内是否有
closeEvent(QCloseEvent *event)
,但在这两种情况下它都返回 true。

如何制作“你确定吗?”仅当用户按下关闭按钮时才出现?

我使用的是 Windows 10。

c++ qt inno-setup qmainwindow qevent
1个回答
0
投票

我认为这是不可能的,安装程序可能会发送

WM_CLOSE
消息,就像关闭按钮一样。

作为解决方法,您可以使用

PrepareToInstall
InnoSetup 部分将临时文件放置到已知位置,并检查
closeEvent
中是否存在该文件。不要忘记在下次运行或安装后删除此文件。

© www.soinside.com 2019 - 2024. All rights reserved.