import sys from PySide2.QtCore import QTimeLine,qVersion, QSysInfo from PySide2.QtWidgets import QWidget, QApplication, QLabel, QHBoxLayout class TestWidget(QWidget): def __init__(self): super().__init__() self.initUI() def initUI(self): self.layout = QHBoxLayout() l = qVersion() + ' ' + qApp.platformName() + ' ' + QSysInfo.prettyProductName() print(l) self.label = QLabel(l) self.layout.addWidget(self.label) self.setLayout(self.layout) self.setWindowTitle('Modifier key test') self.show() self.counter = 0 self.timeline = QTimeLine(duration = 1000) self.timeline.setFrameRange(0, 20) self.timeline.setLoopCount(0) self.timeline.frameChanged.connect(self.tick) self.timeline.start() return def tick(self, frame: int): modifiers = int(QApplication.keyboardModifiers()) queriedModifiers = int(QApplication.queryKeyboardModifiers()) print("[{}] Tick frame {}! Modifiers: {} / {}".format(self.counter, frame, modifiers, queriedModifiers)) self.counter += 1 return def main(): app = QApplication([]) twidg = TestWidget() sys.exit(app.exec_()) if __name__ == '__main__': main()