Python PyQt5.QtCore.Qt.Key_Down() Examples
The following are 27
code examples of PyQt5.QtCore.Qt.Key_Down().
You can vote up the ones you like or vote down the ones you don't like,
and go to the original project or source file by following the links above each example.
You may also want to check out all available functions/classes of the module
PyQt5.QtCore.Qt
, or try the search function
.
Example #1
Source File: qcheckcombobox.py From artisan with GNU General Public License v3.0 | 7 votes |
def keyPressEvent(self, event): """Reimplemented.""" # Override the default QComboBox behavior if event.key() == Qt.Key_Down and event.modifiers() & Qt.AltModifier: self.showPopup() return ignored = {Qt.Key_Up, Qt.Key_Down, Qt.Key_PageDown, Qt.Key_PageUp, Qt.Key_Home, Qt.Key_End} if event.key() in ignored: event.ignore() return super(CheckComboBox, self).keyPressEvent(event)
Example #2
Source File: Console.py From tdm with GNU General Public License v3.0 | 6 votes |
def eventFilter(self, obj, e): if obj == self.command and e.type() == QEvent.KeyPress: history = self.device.history if e.modifiers() & Qt.ControlModifier: if e.key() == Qt.Key_H: d = DeviceConsoleHistory(self.device.env.devices) if d.exec_() == QDialog.Accepted: self.command.setText(d.command) elif len(history) > 0: if e.key() == Qt.Key_E: self.command.setText(history[0]) if e.key() == Qt.Key_Down: self.command.completer().setModel(QStringListModel(history)) self.command.setText(' ') self.command.completer().complete() return False return QDockWidget.eventFilter(self, obj, e)
Example #3
Source File: cmd_console_dlg.py From dash-masternode-tool with MIT License | 6 votes |
def eventFilter(self, obj, event): if obj == self.edtCommand: if event.type() == QEvent.KeyPress: if event.key() == Qt.Key_Up: self.prev_command() return True elif event.key() == Qt.Key_Down: self.next_command() return True return False else: return super().eventFilter(obj, event)
Example #4
Source File: Terminal.py From Hydra with GNU General Public License v3.0 | 6 votes |
def keyPressEvent(self, event: QKeyEvent) -> None: if self.isReadOnly(): return block: QTextBlock = self.textCursor().block() if event.key() in [Qt.Key_Down, Qt.Key_Up, Qt.Key_Left, Qt.Key_Right]: return if not event.key() == 16777220: super().keyPressEvent(event) if not isinstance(self.ignoreLength, bool): textToWrite: str = block.text()[self.ignoreLength:] # TODO: Handle multiline input!!! if event.key() == 16777220: self.userInputSignal.emit(textToWrite) return
Example #5
Source File: eventfilter.py From legion with GNU General Public License v3.0 | 6 votes |
def filterKeyPressInHostsTableView(self, key, receiver): if not receiver.selectionModel().selectedRows(): return True index = receiver.selectionModel().selectedRows()[0].row() if key == Qt.Key_Down: new_index = index + 1 receiver.selectRow(new_index) receiver.clicked.emit(receiver.selectionModel().selectedRows()[0]) elif key == Qt.Key_Up: new_index = index - 1 receiver.selectRow(new_index) receiver.clicked.emit(receiver.selectionModel().selectedRows()[0]) elif QApplication.keyboardModifiers() == Qt.ControlModifier and key == Qt.Key_C: selected = receiver.selectionModel().currentIndex() clipboard = QApplication.clipboard() clipboard.setText(selected.data().toString()) return True
Example #6
Source File: client.py From SunFounder_PiCar-V with GNU General Public License v2.0 | 5 votes |
def keyPressEvent(self, event): """Keyboard press event Effective key: W, A, S, D, ↑, ↓, ←, → Press a key on keyboard, the function will get an event, if the condition is met, call the function run_action(). Args: event, this argument will get when an event of keyboard pressed occured """ key_press = event.key() # don't need autorepeat, while haven't released, just run once if not event.isAutoRepeat(): if key_press == Qt.Key_Up: # up run_action('camup') elif key_press == Qt.Key_Right: # right run_action('camright') elif key_press == Qt.Key_Down: # down run_action('camdown') elif key_press == Qt.Key_Left: # left run_action('camleft') elif key_press == Qt.Key_W: # W run_action('forward') elif key_press == Qt.Key_A: # A run_action('fwleft') elif key_press == Qt.Key_S: # S run_action('backward') elif key_press == Qt.Key_D: # D run_action('fwright')
Example #7
Source File: test_panes.py From mu with GNU General Public License v3.0 | 5 votes |
def test_PythonProcessPane_parse_input_down_arrow(qtapp): """ Down Arrow causes the input line to be replaced with movement forward through command line. """ ppp = mu.interface.panes.PythonProcessPane() ppp.history_forward = mock.MagicMock() key = Qt.Key_Down text = "" modifiers = None ppp.parse_input(key, text, modifiers) assert ppp.history_forward.call_count == 1
Example #8
Source File: test_panes.py From mu with GNU General Public License v3.0 | 5 votes |
def test_MicroPythonREPLPane_keyPressEvent_down(qtapp): """ Ensure down arrows in the REPL are handled correctly. """ mock_serial = mock.MagicMock() rp = mu.interface.panes.MicroPythonREPLPane(mock_serial) data = mock.MagicMock data.key = mock.MagicMock(return_value=Qt.Key_Down) data.text = mock.MagicMock(return_value="1b") data.modifiers = mock.MagicMock(return_value=None) rp.keyPressEvent(data) mock_serial.write.assert_called_once_with(b"\x1B[B")
Example #9
Source File: SimulatorGraphicsView.py From urh with GNU General Public License v3.0 | 5 votes |
def keyPressEvent(self, event): if event.key() == Qt.Key_Up: self.navigate_backward() elif event.key() == Qt.Key_Down: self.navigate_forward() else: super().keyPressEvent(event)
Example #10
Source File: test_{{cookiecutter.application_name}}.py From cookiecutter-pyqt5 with MIT License | 5 votes |
def test_about_dialog(window, qtbot, mock): """Test the About item of the Help submenu. Qtbot clicks on the help sub menu and then navigates to the About item. Mock creates a QDialog object to be used for the test. """ qtbot.mouseClick(window.help_sub_menu, Qt.LeftButton) qtbot.keyClick(window.help_sub_menu, Qt.Key_Down) mock.patch.object(QDialog, 'exec_', return_value='accept') qtbot.keyClick(window.help_sub_menu, Qt.Key_Enter)
Example #11
Source File: test_{{cookiecutter.application_name}}.py From cookiecutter-pyqt5 with MIT License | 5 votes |
def test_open_file(window, qtbot, mock): """Test the Open File item of the File submenu. Qtbot clicks on the file sub menu and then navigates to the Open File item. Mock creates an object to be passed to the QFileDialog. """ qtbot.mouseClick(window.file_sub_menu, Qt.LeftButton) qtbot.keyClick(window.file_sub_menu, Qt.Key_Down) mock.patch.object(QFileDialog, 'getOpenFileName', return_value=('', '')) qtbot.keyClick(window.file_sub_menu, Qt.Key_Enter)
Example #12
Source File: test_eventfilter.py From legion with GNU General Public License v3.0 | 5 votes |
def test_eventFilter_whenKeyDownPressed_SelectsNextRowAndEmitsClickEvent( self, hosts_table_view, selection_model, selected_row): self.mock_view.ui.HostsTableView = hosts_table_view event_filter = MyEventFilter(self.mock_view, self.mock_main_window) self.simulateKeyPress(Qt.Key_Down) self.mock_receiver = hosts_table_view selected_row.row = Mock(return_value=0) selection_model.selectedRows = Mock(return_value=[selected_row]) self.mock_receiver.selectionModel = Mock(return_value=selection_model) result = event_filter.eventFilter(self.mock_receiver, self.mock_event) self.assertTrue(result) self.mock_receiver.selectRow.assert_called_once_with(1) self.mock_receiver.clicked.emit.assert_called_with(selected_row)
Example #13
Source File: widget_console.py From Dwarf with GNU General Public License v3.0 | 5 votes |
def keyPressEvent(self, event): # when codecompletion popup dont respond to enter if self.completer and self.completer.popup() and self.completer.popup( ).isVisible(): event.ignore() return super().keyPressEvent(event) if event.key() == Qt.Key_Enter or event.key() == Qt.Key_Return: cmd = self.toPlainText() l = len(self.cmds) if l > 0: if l > 100: self.cmds.pop(0) if cmd != self.cmds[l - 1]: self.cmds.append(cmd) else: self.cmds.append(cmd) self.cmd_index = 0 self.onEnterKeyPressed.emit(cmd) self.setPlainText('') elif event.key() == Qt.Key_Up: l = len(self.cmds) try: self.setPlainText(self.cmds[l - 1 - self.cmd_index]) if self.cmd_index < l - 1: self.cmd_index += 1 except: pass elif event.key() == Qt.Key_Down: try: if self.cmd_index >= 0: self.cmd_index -= 1 self.setPlainText( self.cmds[len(self.cmds) - 1 - self.cmd_index]) except: self.setPlainText('') self.cmd_index = 0 else: return super().keyPressEvent(event)
Example #14
Source File: client.py From SunFounder_PiCar-V with GNU General Public License v2.0 | 5 votes |
def keyReleaseEvent(self, event): """Keyboard released event Effective key: W,A,S,D, ↑, ↓, ←, → Release a key on keyboard, the function will get an event, if the condition is met, call the function run_action(). Args: event, this argument will get when an event of keyboard release occured """ # don't need autorepeat, while haven't pressed, just run once key_release = event.key() if not event.isAutoRepeat(): if key_release == Qt.Key_Up: # up run_action('camready') elif key_release == Qt.Key_Right: # right run_action('camready') elif key_release == Qt.Key_Down: # down run_action('camready') elif key_release == Qt.Key_Left: # left run_action('camready') elif key_release == Qt.Key_W: # W run_action('stop') elif key_release == Qt.Key_A: # A run_action('fwstraight') elif key_release == Qt.Key_S: # S run_action('stop') elif key_release == Qt.Key_D: # D run_action('fwstraight')
Example #15
Source File: webkittab.py From qutebrowser with GNU General Public License v3.0 | 5 votes |
def down(self, count=1): self._key_press(Qt.Key_Down, count, 'scrollBarMaximum', Qt.Vertical)
Example #16
Source File: mainwin.py From QssStylesheetEditor with GNU General Public License v3.0 | 5 votes |
def textChanged(self, e): # QKeyEvent(QEvent.KeyPress, Qt.Key_Enter, Qt.NoModifier) # if (32<e.key()<96 or 123<e.key()<126 or 0x1000001<e.key()<0x1000005 or e.key==Qt.Key_Delete): # 大键盘为Ret小键盘为Enter if (e.key() in (Qt.Key_Return, Qt.Key_Enter, Qt.Key_Semicolon, Qt.Key_BraceRight, Qt.Key_Up, Qt.Key_Down, Qt.Key_Left, Qt.Key_Right, Qt.Key_Tab, Qt.Key_Delete, Qt.Key_Backspace)): self.renderStyle() self.loadColorPanel() self.actions["undo"].setEnabled(self.editor.isUndoAvailable()) self.actions["redo"].setEnabled(self.editor.isRedoAvailable())
Example #17
Source File: mainwindow.py From bluesky with GNU General Public License v3.0 | 5 votes |
def keyPressEvent(self, event): if event.modifiers() & Qt.ShiftModifier \ and event.key() in [Qt.Key_Up, Qt.Key_Down, Qt.Key_Left, Qt.Key_Right]: dlat = 1.0 / (self.radarwidget.zoom * self.radarwidget.ar) dlon = 1.0 / (self.radarwidget.zoom * self.radarwidget.flat_earth) if event.key() == Qt.Key_Up: self.radarwidget.panzoom(pan=(dlat, 0.0)) elif event.key() == Qt.Key_Down: self.radarwidget.panzoom(pan=(-dlat, 0.0)) elif event.key() == Qt.Key_Left: self.radarwidget.panzoom(pan=(0.0, -dlon)) elif event.key() == Qt.Key_Right: self.radarwidget.panzoom(pan=(0.0, dlon)) elif event.key() == Qt.Key_Escape: self.closeEvent() elif event.key() == Qt.Key_F11: # F11 = Toggle Full Screen mode if not self.isFullScreen(): self.showFullScreen() else: self.showNormal() else: # All other events go to the BlueSky console self.console.keyPressEvent(event) event.accept()
Example #18
Source File: MWTrackerViewer.py From tierpsy-tracker with MIT License | 5 votes |
def __init__(self, ui): super().__init__(ui) self.rois = [ ROIWorm( self.ui.wormCanvas1, self.ui.comboBox_ROI1, self.ui.checkBox_ROI1 ), ROIWorm( self.ui.wormCanvas2, self.ui.comboBox_ROI2, self.ui.checkBox_ROI2 ) ] self.ui.radioButton_ROI1.setShortcut(QKeySequence(Qt.Key_Up)) self.ui.radioButton_ROI2.setShortcut(QKeySequence(Qt.Key_Down)) self.ui.checkBox_ROI1.stateChanged.connect(partial(self._updateROI, self.rois[0])) self.ui.checkBox_ROI2.stateChanged.connect(partial(self._updateROI, self.rois[1])) self.ui.comboBox_ROI1.activated.connect(partial(self._updateROI, self.rois[0])) self.ui.comboBox_ROI2.activated.connect(partial(self._updateROI, self.rois[1])) # flags for RW and FF self.RW, self.FF = 1, 2 self.ui.pushButton_ROI1_RW.clicked.connect(partial(self.roiRWFF, self.RW, self.rois[0])) self.ui.pushButton_ROI1_FF.clicked.connect(partial(self.roiRWFF, self.FF, self.rois[0])) self.ui.pushButton_ROI2_RW.clicked.connect(partial(self.roiRWFF, self.RW, self.rois[1])) self.ui.pushButton_ROI2_FF.clicked.connect(partial(self.roiRWFF, self.FF, self.rois[1]))
Example #19
Source File: snake_app.py From SnakeAI with MIT License | 5 votes |
def keyPressEvent(self, event: QtGui.QKeyEvent) -> None: key_press = event.key() # if key_press == Qt.Key_Up: # self.snake.direction = 'u' # elif key_press == Qt.Key_Down: # self.snake.direction = 'd' # elif key_press == Qt.Key_Right: # self.snake.direction = 'r' # elif key_press == Qt.Key_Left: # self.snake.direction = 'l'
Example #20
Source File: QtKeyDevice.py From Uranium with GNU Lesser General Public License v3.0 | 5 votes |
def _qtKeyToUMKey(self, key): if key == Qt.Key_Shift: return KeyEvent.ShiftKey elif key == Qt.Key_Control: return KeyEvent.ControlKey elif key == Qt.Key_Alt: return KeyEvent.AltKey elif key == Qt.Key_Space: return KeyEvent.SpaceKey elif key == Qt.Key_Meta: return KeyEvent.MetaKey elif key == Qt.Key_Enter or key == Qt.Key_Return: return KeyEvent.EnterKey elif key == Qt.Key_Up: return KeyEvent.UpKey elif key == Qt.Key_Down: return KeyEvent.DownKey elif key == Qt.Key_Left: return KeyEvent.LeftKey elif key == Qt.Key_Right: return KeyEvent.RightKey elif key == Qt.Key_Minus: return KeyEvent.MinusKey elif key == Qt.Key_Underscore: return KeyEvent.UnderscoreKey elif key == Qt.Key_Plus: return KeyEvent.PlusKey elif key == Qt.Key_Equal: return KeyEvent.EqualKey return key
Example #21
Source File: test_app.py From CQ-editor with Apache License 2.0 | 5 votes |
def test_inspect(main): qtbot, win = main #set focus and make invisible obj_tree = win.components['object_tree'].tree qtbot.mouseClick(obj_tree, Qt.LeftButton) qtbot.keyClick(obj_tree, Qt.Key_Down) qtbot.keyClick(obj_tree, Qt.Key_Down) qtbot.keyClick(obj_tree, Qt.Key_Space) #enable object inspector insp = win.components['cq_object_inspector'] insp._toolbar_actions[0].toggled.emit(True) #check if all stack items are visible in the tree assert(insp.root.childCount() == 3) #check if correct number of items is displayed viewer = win.components['viewer'] insp.setCurrentItem(insp.root.child(0)) assert(number_visible_items(viewer) == 4) insp.setCurrentItem(insp.root.child(1)) assert(number_visible_items(viewer) == 7) insp.setCurrentItem(insp.root.child(2)) assert(number_visible_items(viewer) == 4) insp._toolbar_actions[0].toggled.emit(False) assert(number_visible_items(viewer) == 3)
Example #22
Source File: test_app.py From CQ-editor with Apache License 2.0 | 5 votes |
def test_export(main,mocker): qtbot, win = main debugger = win.components['debugger'] debugger._actions['Run'][0].triggered.emit() #set focus obj_tree = win.components['object_tree'].tree obj_tree_comp = win.components['object_tree'] qtbot.mouseClick(obj_tree, Qt.LeftButton) qtbot.keyClick(obj_tree, Qt.Key_Down) qtbot.keyClick(obj_tree, Qt.Key_Down) #export STL mocker.patch.object(QFileDialog, 'getSaveFileName', return_value=('out.stl','')) obj_tree_comp._export_STL_action.triggered.emit() assert(os.path.isfile('out.stl')) #export STEP mocker.patch.object(QFileDialog, 'getSaveFileName', return_value=('out.step','')) obj_tree_comp._export_STEP_action.triggered.emit() assert(os.path.isfile('out.step')) #clean os.remove('out.step') os.remove('out.stl')
Example #23
Source File: consolewidget.py From qutebrowser with GNU General Public License v3.0 | 5 votes |
def keyPressEvent(self, e): """Override keyPressEvent to handle special keypresses.""" if e.key() == Qt.Key_Up: self.history_prev() e.accept() elif e.key() == Qt.Key_Down: self.history_next() e.accept() elif e.modifiers() & Qt.ControlModifier and e.key() == Qt.Key_C: self.setText('') e.accept() else: super().keyPressEvent(e)
Example #24
Source File: client.py From SunFounder_PiCar-V with GNU General Public License v2.0 | 4 votes |
def keyPressEvent(self, event): """Keyboard press event Press a key on keyboard, the function will get an event, if the condition is met, call the function run_action(). In camera calibration mode, Effective key: W,A,S,D, ↑, ↓, ←, →, ESC In front wheel calibration mode, Effective key: A, D, ←, →, ESC In back wheel calibration mode, Effective key: A, D, ←, →, ESC Args: event, this argument will get when an event of keyboard pressed occured """ key_press = event.key() if key_press in (Qt.Key_Up, Qt.Key_W): # UP if self.calibration_status == 1: cali_action('camcaliup') elif self.calibration_status == 2: pass elif self.calibration_status == 3: pass elif key_press in (Qt.Key_Right, Qt.Key_D): # RIGHT if self.calibration_status == 1: cali_action('camcaliright') elif self.calibration_status == 2: cali_action('fwcaliright') elif self.calibration_status == 3: cali_action('bwcaliright') elif key_press in (Qt.Key_Down, Qt.Key_S): # DOWN if self.calibration_status == 1: cali_action('camcalidown') elif self.calibration_status == 2: pass elif self.calibration_status == 3: pass elif key_press in (Qt.Key_Left, Qt.Key_A): # LEFT if self.calibration_status == 1: cali_action('camcalileft') elif self.calibration_status == 2: cali_action('fwcalileft') elif self.calibration_status == 3: cali_action('bwcalileft') cali_action('forward') elif key_press == Qt.Key_Escape: # ESC run_action('stop') self.close()
Example #25
Source File: console.py From bluesky with GNU General Public License v3.0 | 4 votes |
def keyPressEvent(self, event): ''' Handle keyboard input for bluesky. ''' # Enter-key: enter command if event.key() == Qt.Key_Enter or event.key() == Qt.Key_Return: if self.command_line: # emit a signal with the command for the simulation thread self.stack(self.command_line) # Clear any shape command preview on the radar display # self.radarwidget.previewpoly(None) return newcmd = self.command_line cursorpos = None if event.key() >= Qt.Key_Space and event.key() <= Qt.Key_AsciiTilde: pos = self.lineEdit.cursor_pos() newcmd = newcmd[:pos] + event.text() + newcmd[pos:] # Update the cursor position with the length of the added text cursorpos = pos + len(event.text()) elif event.key() == Qt.Key_Backspace: pos = self.lineEdit.cursor_pos() newcmd = newcmd[:pos - 1] + newcmd[pos:] cursorpos = pos - 1 elif event.key() == Qt.Key_Tab: if newcmd: newcmd, displaytext = autocomplete.complete(newcmd) if displaytext: self.echo(displaytext) elif not event.modifiers() & (Qt.ControlModifier | Qt.ShiftModifier | Qt.AltModifier | Qt.MetaModifier): if event.key() == Qt.Key_Up: if self.history_pos == 0: self.command_mem = newcmd if len(self.command_history) >= self.history_pos + 1: self.history_pos += 1 newcmd = self.command_history[-self.history_pos] elif event.key() == Qt.Key_Down: if self.history_pos > 0: self.history_pos -= 1 if self.history_pos == 0: newcmd = self.command_mem else: newcmd = self.command_history[-self.history_pos] elif event.key() == Qt.Key_Left: self.lineEdit.cursor_left() elif event.key() == Qt.Key_Right: self.lineEdit.cursor_right() else: # Remaining keys are things like sole modifier keys, and function keys super(Console, self).keyPressEvent(event) else: event.ignore() return # Final processing of the command line self.set_cmdline(newcmd, cursorpos)
Example #26
Source File: terminal_dialog.py From uPyLoader with MIT License | 4 votes |
def eventFilter(self, target, event): def match(s1, s2): for x in s2: if s1.matches(x) == QKeySequence.ExactMatch: return True return False if target == self.inputTextBox: if isinstance(event, QKeyEvent): if event.type() == QKeyEvent.KeyPress: event_sequence = QtHelper.key_event_sequence(event) if match(event_sequence, Settings().new_line_key): return False if match(event_sequence, Settings().send_key): self.send_input() return True if event.key() == Qt.Key_Tab: self.inputTextBox.insertPlainText(" "*Settings().terminal_tab_spaces) return True if event.key() == Qt.Key_Up and (event.modifiers() & Qt.ControlModifier): if self._input_history_index > 0: self._input_history_index -= 1 self.inputTextBox.clear() self.inputTextBox.setPlainText(self.terminal.input(self._input_history_index)) if event.key() == Qt.Key_Down and (event.modifiers() & Qt.ControlModifier): if self._input_history_index < self.terminal.last_input_idx(): self._input_history_index += 1 self.inputTextBox.clear() self.inputTextBox.setPlainText(self.terminal.input(self._input_history_index)) elif target == self.outputTextEdit: if isinstance(event, QKeyEvent): if event.type() == QEvent.KeyPress: if event.key() == Qt.Key_Up: self.connection.send_bytes(b"\x1b[A") if event.key() == Qt.Key_Down: self.connection.send_bytes(b"\x1b[B") else: t = event.text() if t: self.connection.send_character(t) return True elif target == self.outputTextEdit.verticalScrollBar(): if isinstance(event, QHideEvent): return True return False
Example #27
Source File: forward_keyboard.py From MaixPy_scripts with MIT License | 4 votes |
def keyPressEvent(self, event): print(event.key()) if event.key() == Qt.Key_M: self.send_flag = False self.com.write(b"m") self.send_flag = False elif event.key() == Qt.Key_Return or event.key()==Qt.Key_Enter: self.send_flag = False self.com.write(b"m") self.send_flag = False elif event.key() == Qt.Key_N or event.key() == 92: self.send_flag = False self.com.write(b"n") self.send_flag = False elif event.key() == Qt.Key_Minus: self.send_flag = False self.com.write(b"-") self.send_flag = False elif event.key() == Qt.Key_Equal: self.send_flag = False self.com.write(b"=") self.send_flag = False elif event.key() == Qt.Key_W or event.key() == Qt.Key_Up: self.send_flag = True self.key.append(b"w") elif event.key() == Qt.Key_A or event.key() == Qt.Key_Left: self.send_flag = True self.key.append(b"a") elif event.key() == Qt.Key_S or event.key() == Qt.Key_Down: self.send_flag = True self.key.append(b"s") elif event.key() == Qt.Key_D or event.key() == Qt.Key_Right: self.send_flag = True self.key.append(b"d") elif event.key() == Qt.Key_J: self.send_flag = True self.key.append(b"j") elif event.key() == Qt.Key_K: self.send_flag = True self.key.append(b"k") elif event.key() == Qt.Key_Escape: self.send_flag = False self.com.write(b"\x03") elif event.key() == Qt.Key_Control: self.keyControlPressed = True elif event.key() == Qt.Key_C: if self.keyControlPressed: self.send_flag = False self.com.write(b"\x03") # self.key_label.setText(self.key.decode())