2012-10-26 2 views
0

보통 단축키로 저장, 열기 및 종료 메뉴 항목을 포함하여 QMainWindow을 가지고 있습니다. 사용자가 선택할 수있는 여러 범주의 목록을 나열하는 QTableWidget을 만듭니다 (그의 옵션에서).PyQt4에서 포커스가있는 하위 위젯에서 메뉴 바로 가기를 전달하는 방법은 무엇입니까?

사용자가 QTableWidget을 클릭하여 카테고리를 변경하면 위젯이 포커스를 얻습니다. 그게 내가 원하는 건 아니지만, 불행히도 은 단축키를 훔쳐서 Ctrl + S를 누르면 더 이상 저장이 시작되지 않습니다.

이 문제를 해결하기 위해 keyPressEvent을 실험했지만, 제대로 작동하더라도 과도한 것처럼 보입니다. 모든 컨트롤/메뉴 키를 QMainWindow으로 다시 위임 할 방법이 없습니까?

답변

1

QMenuBar을 만드는 방법에 문제가 있어야합니다. 여기 저에게 잘 맞는 예제가 있습니다. 저장 기능은 테이블에 포커스가 있는지 여부에 관계없이 계속 작동합니다.

class Window(QtGui.QMainWindow): 

    def __init__(self): 
     super(Window, self).__init__() 
     self.resize(640,480) 

     menuBar = self.menuBar() 
     menu = menuBar.addMenu("&File") 
     action = menu.addAction("&Save", self.doAction) 
     action.setShortcuts(QtGui.QKeySequence.Save) 

     self.view = QtGui.QTableWidget(5,5) 
     self.setCentralWidget(self.view) 

    def doAction(self): 
     print "Save" 
관련 문제