def key_click(widget, key, delay): """ Performs a key click of the given key on the given widget after a delay. Parameters ---------- widget : Qwidget The Qt widget to be key clicked. key : str Standardized (pyface) name for a keyboard event. e.g. "Enter", "Tab", "Space", "0", "1", "A", ... Note: modifiers (e.g. Shift, Alt, etc. are not currently supported) delay : int Time delay (in ms) in which the key click will be performed. """ mapping = {name: event for event, name in _KEY_MAP.items()} if key not in mapping: raise ValueError( "Unknown key {!r}. Expected one of these: {!r}".format( key, sorted(mapping))) QTest.keyClick( widget, mapping[key], QtCore.Qt.NoModifier, delay=delay, )
def click_key_seq(widget, key_seq): if not isinstance(key_seq, QtGui.QKeySequence): key_seq = QtGui.QKeySequence(key_seq) try: # QKeySequence on python3-pyside does not have `len` first_key = key_seq[0] except IndexError: return False key = QtCore.Qt.Key(first_key & ~QtCore.Qt.KeyboardModifierMask) modifier = QtCore.Qt.KeyboardModifier(first_key & QtCore.Qt.KeyboardModifierMask) QTest.keyClick(widget, key, modifier) return True
def click_key_seq(widget, key_seq): if not isinstance(key_seq, QtGui.QKeySequence): key_seq = QtGui.QKeySequence(key_seq) try: # QKeySequence on python3-pyside does not have `len` first_key = key_seq[0] except IndexError: return False key = QtCore.Qt.Key(first_key & ~QtCore.Qt.KeyboardModifierMask) modifier = QtCore.Qt.KeyboardModifier( first_key & QtCore.Qt.KeyboardModifierMask) QTest.keyClick(widget, key, modifier) return True