2012-10-26 17 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" 
相關問題