如何检查是否按下了键盘修饰符(Shift,Ctrl,Alt)?

如何检查是否按下了键盘修饰符(Shift,Ctrl,Alt)?,第1张

如何检查是否按下了键盘修饰符(Shift,Ctrl,Alt)?

看起来您需要做的就是检查按钮处理程序中的keyboardModifiers,并根据需要选择其他 *** 作。可以对各种修饰符进行“或”运算以检查多键组合:

PyQt5

import sysfrom PyQt5 import QtCore, QtWidgetsclass Window(QtWidgets.QWidget):    def __init__(self):        super().__init__()        self.button = QtWidgets.QPushButton('Test')        self.button.clicked.connect(self.handleButton)        layout = QtWidgets.QVBoxLayout(self)        layout.addWidget(self.button)    def handleButton(self):        modifiers = QtWidgets.QApplication.keyboardModifiers()        if modifiers == QtCore.Qt.ShiftModifier: print('Shift+Click')        elif modifiers == QtCore.Qt.ControlModifier: print('Control+Click')        elif modifiers == (QtCore.Qt.ControlModifier |     QtCore.Qt.ShiftModifier): print('Control+Shift+Click')        else: print('Click')if __name__ == '__main__':    app = QtWidgets.QApplication(sys.argv)    window = Window()    window.show()    sys.exit(app.exec())

PyQt4

import sysfrom PyQt4 import QtGui, QtCoreclass Window(QtGui.QWidget):    def __init__(self):        super(Window, self).__init__()        self.button = QtGui.QPushButton('Test')        self.button.clicked.connect(self.handleButton)        layout = QtGui.QVBoxLayout(self)        layout.addWidget(self.button)    def handleButton(self):        modifiers = QtGui.QApplication.keyboardModifiers()        if modifiers == QtCore.Qt.ShiftModifier: print('Shift+Click')        elif modifiers == QtCore.Qt.ControlModifier: print('Control+Click')        elif modifiers == (QtCore.Qt.ControlModifier |     QtCore.Qt.ShiftModifier): print('Control+Shift+Click')        else: print('Click')if __name__ == '__main__':    app = QtGui.QApplication(sys.argv)    window = Window()    window.show()    sys.exit(app.exec_())


欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/zaji/5644885.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-12-16
下一篇 2022-12-16

发表评论

登录后才能评论

评论列表(0条)

保存