2012-02-17 3 views
1

OSX Lion에서 실행중인 Qt 4.7.4와 관련하여 이상한 동작이 관찰됩니다.Qt : Mac 메뉴 모음의 기이함

내 응용 프로그램이 모든 창에 대해 단일 메뉴 모음을 갖길 바랍니다. 그래서, 내 응용 프로그램이 보유하고 QMenuBar 개체 초기화 : 내 응용 프로그램을 실행할 때

this->macMenuBar = new QMenuBar(0); 

, 나는, 종료 같은 몇 가지 기본 옵션으로, 바로 사과 로고, 메뉴 표시 줄에 내 응용 프로그램의 이름을 참조 서비스 -> 등 ...

내 응용 프로그램 이름 아래에이 메뉴에 두 개의 새로운 옵션을 추가하고 싶습니다. 그래서 QApplication의 생성자에서이 작업을 시도합니다.

this->macMenuBar->addAction(configurationAction); 
this->macMenuBar->addAction(aboutMyAppAction); 

이것은 에 메뉴에 아무런 영향을 미치지 않습니다. 두 작업이 모두 유효하고 도크 아이콘 메뉴에서 작동하지만 내 항목이 표시되지 않습니다.

그런 다음, 나는 전혀 이해하지 못하는 부분을 결정하지만 부분적으로 작동합니다.

QMenu * menu = this->macMenuBar->addMenu(("blah blah")); 
menu->addAction(configurationAction); 
menu->addAction(aboutMyApp); 

지금 보여주고, 이러한 작업이 표시되어하는 아래의 "ㅋ ㅋ ㅋ ㅋ"라는 어떤 메뉴 항목의 흔적이있을 것 "에 대해"내 두 가지 작업 "구성"와!

지금은 다른 줄을 추가하기로 결정 :

menu->addAction(loginAction); 

그래서 내가 지금 무엇을받을 수 있나요? 내 응용 프로그램 이름의 메뉴 항목 아래 메뉴에서 "환경 설정"및 "about"을 선택하고 오른쪽에 "blah blah"라는 새로운 하위 메뉴를 하나의 항목 인 loginAction과 함께 사용합니다.

나는 정말로 여기에서 혼란 스럽다.

  1. 세 번째 작업을 추가 할 때까지 최상위 메뉴 항목이 "어쩌구"로 표시되지 않는 이유는 무엇입니까?

  2. 응용 프로그램 이름 아래 첫 번째 최상위 메뉴에 "loginAction"을 강제로 적용하려면 어떻게합니까? Qt는 포럼에서 해결

답변

관련 문제