2012-04-23 172 views
0

我在應用程序的插件中使用Qt。由於將Qt從4.3.4升級到4.6.4碳,Qt似乎想要控制應用程序。要重新獲得菜單,我已經完成了應用程序不會退出dock圖標,而是退出qt

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

但是,當我嘗試從停靠欄圖標關閉應用程序時,Qt退出而不是應用程序。

這怎麼解決?

其他信息: - 從碼頭顯示/隱藏按預期工作。 - ⌘Q退出本機應用程序(按預期) - 退出菜單退出本機應用程序(如預期的那樣) - 與Qt 4.6.4可可相同的問題。

回答

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); 
}