gpt4 book ai didi

macos - 在 Qt 应用程序中如何捕获 "Cmd-Q"或 "Quit"菜单单击

转载 作者:行者123 更新时间:2023-12-04 13:17:47 25 4
gpt4 key购买 nike

在我的 Qt 应用程序中,我有一个退出例程,它在最终退出之前优雅地清理所有内容,否则可能在某处发生崩溃。该应用程序在系统托盘中运行,并为系统托盘图标定义了一个“退出”菜单。在 quitAction 上,我设置了菜单角色,以便它与 Mac 的应用程序菜单合并,但我没有看到我的插槽被调用。代码如下:

QAction *quitAction = new QAction(tr("&Quit"), this);
quitAction->setMenuRole(QAction::QuitRole);
connect(quitAction, SIGNAL(triggered()), this, SLOT(quittingApp()));

我还尝试在 QApplication 上捕获 QCloseEvent 但即使这样似乎也不起作用。
bool MyApplication::event(QEvent *ev)
{
bool eaten = false;
switch (ev->type())
{
case QEvent::Close:
{
quittingApp(); //My quit cleanup routine
eaten = true;
break;
}
default:
eaten = QApplication::event(ev);
break;
}
return eaten;
}

我在这里错过了什么吗?在退出期间调用我自己的清理例程的最佳方法是什么?

最佳答案

连接到 QCoreApplication::aboutToQuit信号是执行一些最后一秒清理的最佳方式。

关于macos - 在 Qt 应用程序中如何捕获 "Cmd-Q"或 "Quit"菜单单击,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19902285/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com