Сочетание клавиш в PyQt на Mac? - PullRequest
1 голос
/ 05 ноября 2011

Мне не удается заставить сочетания клавиш работать правильно в PyQt на Mac.Например, если я изменю QKeySequence ниже на Qt.Key_Tab, он будет работать нормально, но Qt.Key_Control не будет работать.Я что-то не так делаю?

Я тоже пробовал Qt.CTRL и "Ctrl", но они тоже не работают.

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

1 Ответ

0 голосов
/ 05 ноября 2011

Я не могу проверить это сам, но модификаторы сопоставляются с разными ключами на Mac: см. Примечание в конце подробного раздела для QKeySequence.

Похоже, вам нужно использовать 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 не позволяет клавишам-модификаторам (в любой комбинации) быть заданными в качестве ярлыков.

...