2014-07-19 5 views
0

에 비활성 메뉴 항목을 포함 다음 코드를QMenuBar 단지 내가 OS X 매버릭스의 기본 메뉴 모음을 사용할 때 내 모든 메뉴 표시 줄의 항목이 회색으로 표시되는 몇 가지 이유를 들어 OS의 X

newAct = new QAction(tr("&New"), this); 
newAct->setShortcuts(QKeySequence::New); 
newAct->setStatusTip(tr("New")); 
newAct->setShortcutContext(Qt::ApplicationShortcut); 
newAct->setEnabled(true); 
newAct->setAutoRepeat(false); 
addAction(newAct); 
connect(newAct, SIGNAL(triggered()), this, SLOT(newFile())); 
... 

이러한 조치는 다음과 같이 도구 모음에 추가됩니다

// _menuBar = new QMenuBar(0); 
_menuBar = menuBar(); 
//_menuBar->setNativeMenuBar(false); 

fileMenu = _menuBar->addMenu(tr("&File")); 
fileMenu->addAction(newAct); 

첫 줄의 주석 처리를 제거하면 동일한 동작이 나타납니다. 그러나 네이티브가 아닌 메뉴 모음을 사용할 때 제대로 작동합니다.

Qt는 버전 :

$ /usr/local/qt/5.3/clang_64/bin/qmake -v  
QMake version 3.0 
Using Qt version 5.3.1 in /usr/local/qt/5.3/clang_64/lib 

모든 아이디어/제안?

addAction(newAct); 

대신 fileMenu 객체에 추가 할 것이기 때문에 당신이 당신의 창에 QActions를 추가해서는 안 :

+0

안녕하세요,이 문제의 원인을 파악할 수 있었습니까? Qt 5.5에서도이 문제가 발생했습니다. Qt 4.8.6에서는 정상적으로 작동하지만 Qt 5.5에서는 모든 메뉴 항목이 비활성화됩니다. – Dmitry

답변

0

나는이 라인이 범인이다 생각한다. 위의 줄을 제거하십시오.

+0

답변 해 주셔서 감사합니다. 방금 addAction() 줄을 제거하려고했지만 메뉴가 똑같아 보입니다. 바로 가기가 작동하도록 추가하는 것입니다. 그렇지 않으면 창에 추가하지 않으면 어떻게 될까요? 동일한 설정으로 다른 작업을 추가 하시겠습니까? 어쨌든,이 불행히도 내 문제가 해결되지 않았다. –

+0

흠. 오류를 재현하는 작고 독립적 인 컴파일 가능한 예제 프로그램을 게시 할 수 있습니까? –

+0

음, 방금 해봤지만, Qt Creator에서 신선한 프로젝트를 만들고 관련 자료를 복사하면 작동합니다. 제가 언급하지 않은 것은 qmake를 직접 프로젝트를 빌드하는 데 사용하지 않고 대신 autotroll을 기반으로하는 프로젝트에 통합했습니다. 지금까지는 제대로 작동했습니다. 메뉴 막대에 문제가 발생했을 가능성이 있습니다 : - / –

0

나는 동일한 문제가있었습니다.

내 MainWindow의 windowModality 속성을 설정하면 NonModal이 효과가 있습니다.