2012-04-23 11 views
0

私はアプリケーションのプラグインでQtを使用しています。 Qtを4.3.4から4.6.4にアップグレードして以来、Qtはアプリケーションを管理したいと考えています。メニューを取り戻すには、私が行った。アプリケーションはドックアイコンから終了せず、代わりにqtを終了します

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

しかし、ドックアイコンからアプリケーションを閉じると、Qtはアプリケーションの代わりに終了します。

どのように修正できますか?

追加情報: - dockからの表示/非表示は、期待通りに機能します。 - ⌘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); 
}