2011-11-05 122 views
1

我無法使用單鍵快捷鍵在Mac上的PyQt中正常工作。例如,如果我將QKeySequence更改爲Qt.Key_Tab,它可以正常工作,但Qt.Key_Control不起作用。難道我做錯了什麼?在Mac上的PyQt單鍵快捷鍵?

我也試過Qt.CTRL"Ctrl",但它們也不起作用。

shortcut = QShortcut(QKeySequence(Qt.Key_Control), self, self.show_dialog) 
shortcut.setContext(Qt.ApplicationShortcut) 

回答

0

我無法將這個測試自己,但修飾符映射到不同的密鑰在Mac上:看筆記在details sectionQKeySequence結束。

看起來您需要使用Qt.Key_Meta

使用此清楚地看到正被按鍵:

from PyQt4 import QtGui 

class Window(QtGui.QWidget): 
    def __init__(self): 
     QtGui.QWidget.__init__(self) 
     self.resize(200, 200) 

    def keyPressEvent(self, event): 
     print 'key: %s -' % hex(event.key()), 
     print 'modifiers:', hex(int(event.modifiers())) 

if __name__ == '__main__': 

    import sys 
    app = QtGui.QApplication(sys.argv) 
    win = Window() 
    win.show() 
    sys.exit(app.exec_()) 

編輯

注:Qt的不允許修改鍵(任意組合),將其設置爲快捷鍵。

+0

'Qt.Key_Meta'也沒有工作。我會用腳本進一步調查。 – c00kiemonster

+0

所以當我點擊'control'鍵時,'keyPressEvent'會捕獲一個'Qt.Key_Meta'鍵和一個'Qt.MetaModifier'鍵修飾符。儘管如此,不管我作爲'QKeySequence'輸入的快捷方式仍然沒有註冊。我會在Windows中嘗試腳本來查看它是否與此相同。 – c00kiemonster

+0

我剛剛在Windows PC上檢查過。那裏一樣的東西。任何修改器單鍵快捷方式都不會註冊。 – c00kiemonster