2009-12-08 3 views
0

에서 컨텍스트 메뉴 (QMenu를) 참조 I는 다음과 같이 만들어 내 상황에 맞는 메뉴에서 하위 메뉴를 추가 할 : widget_alignment이 QTableWidget입니다QT 다음 QTableWidget

self.widget_alignment.setContextMenuPolicy(Qt.ActionsContextMenu) 

.

나는 새로운 QMenu를 인스턴스 생성 :
exchange_bases_menu = QMenu(self.widget_alignment) 

몇 가지 조치를 추가, 그리고 나는 방법 QAction QMenu.addMenu (self, QMenu menu)

을 발견하지만 난 self.widget_alignment의 기본 컨텍스트 메뉴에 대한 참조를 볼 수 없습니다. 은 또한이 코드는 :

self.widget_alignment.addMenu(exchange_bases_menu) 

이 내게 준 : QTableWidget 객체가 어떤 속성하면 addMenu이 없습니다.

하위 메뉴를 기본 상황에 맞는 메뉴에 추가하려면 어떻게합니까?

답변

1

QWidget이 조치 컨텍스트 메뉴 유형이 설정되어있는 설명서에 따르면, 위젯은 위젯 설정 작업 목록에 따라 상황에 맞는 메뉴를 구성합니다. 작업 목록을 수정하려면 addAction, insertAction 또는 removeAction을 호출 할 수 있습니다. 나는이 생성됩니다 컨텍스트 메뉴의 하단에 "가지고는 하위 메뉴"옵션을 추가하는 기대,

QAction *act_p = new QAction("Has Submenu", widget_alignment); 
QMenu *submenu_p = new QMenu(act_p); 
// Add items to the submenu 
act_p->setMenu(submenu_p); 
widget_alignment->addAction(act_p); 

을 그것을 자신을 시도하지 않고 : 그래서 나는 당신이 (C++에서) 이런 일을 할 수있는 기대 하위 메뉴로 만든 하위 메뉴가 표시된 위젯.

+0

감사합니다. cjhuitt! "( act_p = QAction ("하위 메뉴가 "self.widget_alignment) submenu_p = QMenu를 (self.widget_alignment) # 하위 메뉴에 항목을 추가 SA = QAction를 (파이썬에서) 나를 위해 작동 무엇 하위 메뉴 작업 ", submenu_p) submenu_p.addAction (sa) act_p.setMenu (submenu_p) self.widget_alignment.addAction (act_p) –

0

MouseReleaseEvent에서 QMenu의 팝업()을 사용하는 것은 어떻습니까?

if (pEvent->button() == Qt::RightButton) 
{ 
    QMenu menu; 
    menu.addAction(action1); 
    menu.addAction(action2); 
    menu.popup(pEvent->globalPos(),action1); 
}