0

我在应用程序的插件中使用 Qt。自从将 Qt 从 4.3.4 升级到 4.6.4 carbon 之后,Qt 似乎想要控制应用程序。为了重新获得菜单,我已经完成了

qApp->setAttribute(Qt::AA_MacPluginApplication,true);

但是,当我尝试从停靠图标关闭应用程序时,Qt 会退出而不是应用程序。

这怎么能纠正?

附加信息: - 显示/隐藏码头按预期工作。- ⌘Q 退出本机应用程序(如预期) - 从菜单退出退出本机应用程序(如预期) - Qt 4.6.4 cocoa 存在相同问题。

4

1 回答 1

0

这是 4.6 中引入的 Qt 错误。 https://bugreports.qt-project.org/browse/QTBUG-8087?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel

幸运的是,有解决方法。

long refCon = 0;
AEEventHandlerUPP handler = NULL;
AEGetEventHandler(kCoreEventClass, kAEQuitApplication, &handler, &refCon, false);

QApplication::setAttribute(Qt::AA_MacPluginApplication, true);
int argc = 0;
(void)new QApplication(argc, 0, true);

if (handler)
{
    AEInstallEventHandler(kCoreEventClass, kAEQuitApplication, handler, refCon, false);
}
于 2012-04-24T16:20:15.887 回答