2011-03-19 3 views
14

저는 Qt에 초보자이며 현재 Qt Creator와 원시 C++ 코드를 가지고 놀고 있습니다. 두 가지 모두에 QAction 개체를 추가하여 메뉴 및 도구 모음을 비롯한 몇 가지 간단한 기능을 작동 시켰습니다. 그러나 난 약간의 어려움을 겪고 있습니다 :Qt 4.7에서 QToolbar 버튼에 팝업 메뉴를 추가하는 방법은 무엇입니까?

내가 뭘하고 싶은 하위 메뉴가있는 메뉴 옵션이 있습니다. New, 항목들로 구성된 하위 메뉴 및 QToolbar에서 중복. 메뉴에서 QMenu로 새 항목을, QAction 개체로 하위 메뉴 항목을 관리했습니다. 도구 모음에서이 작업을 수행하는 방법을 알 수 없습니다. 클릭하면 "기본"QAction (예 : 첫 번째 하위 메뉴 항목)이 실행되지만 다른 모든 옵션을 제공하는 오른쪽에는 작은 메뉴 버튼이있는 새 버튼입니다. 이것은 Office 도구 모음의 실행 취소/다시 실행 단추와 유사하다고 생각합니다. 이 도움이

QMenu *menu = new QMenu(); 
QAction *testAction = new QAction("test menu item", this); 
menu->addAction(testAction); 

QToolButton* toolButton = new QToolButton(); 
toolButton->setMenu(menu); 
toolButton->setPopupMode(QToolButton::InstantPopup); 
toolBar->addWidget(toolButton); 

희망, 그것은 이미 QToolButton 보인다

답변

2

에 관하여 : 아래 예제는 당신을 위해 작동 할 경우

2

윈도우 크기가 더 작아 져야하고 Qt가 팝업 메뉴에 QToolButton 자체를 넣으려고 할 때를 제외하고는 serge_gubenco의 대답이 작동합니다. 그렇게하지 못할 수도 있습니다. http://doc.qt.io/archives/qt-4.7/qtoolbar.html을 참조하십시오.

해결책은 수정 된 스 니펫에서 아래와 같이 빠른 QWidgetAction을 사용하는 것입니다.

QMenu *menu = new QMenu(); 
QAction *testAction = new QAction("test menu item", this); 
menu->addAction(testAction); 

QToolButton* toolButton = new QToolButton(); 
toolButton->setMenu(menu); 
toolButton->setPopupMode(QToolButton::InstantPopup); 

QWidgetAction* toolButtonAction = new QWidgetAction(this); 
toolButtonAction->setDefaultWidget(toolButton); 

toolBar->addAction(toolButtonAction); 
관련 문제