Пример #1
0
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,
    )
Пример #2
0
 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
Пример #3
0
 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