2012-04-23 1 views
0

Qt를 응용 프로그램의 플러그인에 사용하고 있습니다. Qt를 4.3.4에서 4.6.4 탄소로 업그레이드 한 이후 Qt는 응용 프로그램을 제어하려고합니다. 메뉴를 되찾기 위해서, 나는 끝냈다응용 프로그램이 도크 아이콘에서 종료되지 않고 대신 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); 
} 
관련 문제