def keyPressEvent(self, event): g = self.game _key = event.key() if ord('A') <= _key <= ord('Z'): key = QKeySequence(_key).toString() if key == 'Q': self.close() g.move(key.lower()) self.your_fr.update_board(lambda i, j: g.element(i, j)) super(TetrisWindow, self).keyPressEvent(event)
def keyboard_key_pressed(self, key, modifiers): if type(key) == int: if 0x1001250 <= key <= 0x1001262: name = characters.DEAD[key] elif 0x41 <= key <= 0x5a or 0x61 <= key <= 0x7a: name = chr(key) else: name = QKeySequence(key).toString() try: name.encode('utf-8') except UnicodeEncodeError: return else: name = key k = [] if self.ui.ignoreModifiersCheck.isChecked(): modifiers = 0x0 if modifiers & Qt.KeypadModifier: name = 'KP_' + name if self.ui.composeCheck.isChecked(): k.append('Multi_key') if self.ui.ctrlCheck.isChecked() or (modifiers & Qt.ControlModifier): k.append('Ctrl') if self.ui.shiftCheck.isChecked() or (modifiers & Qt.ShiftModifier): k.append('Shift') if self.ui.altCheck.isChecked() or (modifiers & Qt.AltModifier): k.append('Alt') if self.ui.superCheck.isChecked() or (modifiers & Qt.MetaModifier): k.append('Super') if self.ui.altGrCheck.isChecked(): k.append('ISO_Level3_Shift') if name in characters.CHARACTERS: name = characters.CHARACTERS[name] if len(name) == 1: name = name.lower() k.append(name) key_str = '+'.join(k) self.ui.lastKeyTitleLabel.setText('Last key sent:') self.ui.lastKeyLabel.setText(key_str) display = str(self.ui.displayField.text()) cmd = 'DISPLAY=' + shlex.quote(display) + ' ' if self.lock_keys['Num'] and \ ((key_str[-1] in digits and key_str[:-1].endswith('KP_')) \ or key_str.endswith('KP_Separator')): cmd += 'xdotool key Num_Lock ' + shlex.quote(key_str) + ' Num_Lock' else: cmd += 'xdotool key ' + shlex.quote(key_str) self.connection.run(cmd)
def text(self): """Get the text which would be displayed when pressing this key.""" control = { Qt.Key_Space: ' ', Qt.Key_Tab: '\t', Qt.Key_Backspace: '\b', Qt.Key_Return: '\r', Qt.Key_Enter: '\r', Qt.Key_Escape: '\x1b', } if self.key in control: return control[self.key] elif not _is_printable(self.key): return '' text = QKeySequence(self.key).toString() if not self.modifiers & Qt.ShiftModifier: text = text.lower() return text