Skip to content

Instantly share code, notes, and snippets.

@newpander
Created February 18, 2021 11:41
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save newpander/c8c83f586c9f58a3228dec65c07acd5b to your computer and use it in GitHub Desktop.
Save newpander/c8c83f586c9f58a3228dec65c07acd5b to your computer and use it in GitHub Desktop.
import sys
from PyQt5 import QtCore, QtGui, QtWidgets
from PyQt5.Qt import *
class Ui_MainWindow(object):
def setupUi(self, MainWindow):
MainWindow.setObjectName("MainWindow")
MainWindow.resize(950, 495)
MainWindow.setAnimated(True)
self.centralwidget = QtWidgets.QWidget(MainWindow)
self.centralwidget.setObjectName("centralwidget")
self.keyboard = QtWidgets.QLabel(self.centralwidget)
self.keyboard.setGeometry(QtCore.QRect(0, -30, 681, 351))
self.keyboard.setText("")
self.keyboard.setPixmap(QtGui.QPixmap("../Downloads/f.png"))
self.keyboard.setObjectName("keyboard")
self.f1 = QtWidgets.QLabel(self.centralwidget)
self.f1.setGeometry(QtCore.QRect(70, 20, 21, 31))
self.f1.setObjectName("f1")
self.f4 = QtWidgets.QLabel(self.centralwidget)
self.f4.setGeometry(QtCore.QRect(200, 20, 21, 31))
self.f4.setObjectName("f4")
self.f3 = QtWidgets.QLabel(self.centralwidget)
self.f3.setGeometry(QtCore.QRect(160, 20, 21, 31))
self.f3.setObjectName("f3")
self.f2 = QtWidgets.QLabel(self.centralwidget)
self.f2.setGeometry(QtCore.QRect(110, 20, 21, 31))
self.f2.setObjectName("f2")
self.esc = QtWidgets.QLabel(self.centralwidget)
self.esc.setGeometry(QtCore.QRect(30, 20, 21, 31))
self.esc.setObjectName("esc")
self.f5 = QtWidgets.QLabel(self.centralwidget)
self.f5.setGeometry(QtCore.QRect(240, 20, 21, 31))
self.f5.setObjectName("f5")
self.f6 = QtWidgets.QLabel(self.centralwidget)
self.f6.setGeometry(QtCore.QRect(290, 20, 21, 31))
self.f6.setObjectName("f6")
self.f7 = QtWidgets.QLabel(self.centralwidget)
self.f7.setGeometry(QtCore.QRect(330, 20, 21, 31))
self.f7.setObjectName("f7")
self.W = QtWidgets.QLabel(self.centralwidget)
self.W.setGeometry(QtCore.QRect(140, 90, 21, 31))
self.W.setObjectName("W")
self.S = QtWidgets.QLabel(self.centralwidget)
self.S.setGeometry(QtCore.QRect(150, 130, 21, 31))
self.S.setObjectName("S")
self.A = QtWidgets.QLabel(self.centralwidget)
self.A.setGeometry(QtCore.QRect(110, 130, 21, 31))
self.A.setObjectName("A")
self.D = QtWidgets.QLabel(self.centralwidget)
self.D.setGeometry(QtCore.QRect(190, 130, 21, 31))
self.D.setObjectName("D")
self.Ctrl = QtWidgets.QLabel(self.centralwidget)
self.Ctrl.setGeometry(QtCore.QRect(30, 220, 21, 31))
self.Ctrl.setObjectName("Ctrl")
self.Alt = QtWidgets.QLabel(self.centralwidget)
self.Alt.setGeometry(QtCore.QRect(160, 220, 21, 31))
self.Alt.setObjectName("Alt")
self.Win = QtWidgets.QLabel(self.centralwidget)
self.Win.setGeometry(QtCore.QRect(110, 220, 21, 31))
self.Win.setObjectName("Win")
self.ShifL = QtWidgets.QLabel(self.centralwidget)
self.ShifL.setGeometry(QtCore.QRect(30, 180, 81, 21))
self.ShifL.setObjectName("ShifL")
self.Enter = QtWidgets.QLabel(self.centralwidget)
self.Enter.setGeometry(QtCore.QRect(560, 130, 41, 31))
self.Enter.setObjectName("Enter")
self.Backspace = QtWidgets.QLabel(self.centralwidget)
self.Backspace.setGeometry(QtCore.QRect(570, 50, 41, 31))
font = QtGui.QFont()
font.setPointSize(20)
self.Backspace.setFont(font)
self.Backspace.setObjectName("Backspace")
self.dlt = QtWidgets.QLabel(self.centralwidget)
self.dlt.setGeometry(QtCore.QRect(590, 20, 21, 31))
self.dlt.setObjectName("dlt")
self.Tab = QtWidgets.QLabel(self.centralwidget)
self.Tab.setGeometry(QtCore.QRect(30, 90, 41, 31))
self.Tab.setObjectName("Tab")
self.tild = QtWidgets.QLabel(self.centralwidget)
self.tild.setGeometry(QtCore.QRect(30, 50, 21, 31))
self.tild.setObjectName("tild")
self.ShiftR = QtWidgets.QLabel(self.centralwidget)
self.ShiftR.setGeometry(QtCore.QRect(540, 180, 71, 21))
self.ShiftR.setObjectName("ShiftR")
self.F = QtWidgets.QLabel(self.centralwidget)
self.F.setGeometry(QtCore.QRect(230, 130, 21, 31))
self.F.setObjectName("F")
self.G = QtWidgets.QLabel(self.centralwidget)
self.G.setGeometry(QtCore.QRect(270, 130, 21, 31))
self.G.setObjectName("G")
self.H = QtWidgets.QLabel(self.centralwidget)
self.H.setGeometry(QtCore.QRect(310, 130, 21, 31))
self.H.setObjectName("H")
self.J = QtWidgets.QLabel(self.centralwidget)
self.J.setGeometry(QtCore.QRect(350, 130, 21, 31))
self.J.setObjectName("J")
self.K = QtWidgets.QLabel(self.centralwidget)
self.K.setGeometry(QtCore.QRect(390, 130, 21, 31))
self.K.setObjectName("K")
self.L = QtWidgets.QLabel(self.centralwidget)
self.L.setGeometry(QtCore.QRect(430, 130, 21, 31))
self.L.setObjectName("L")
self.colon = QtWidgets.QLabel(self.centralwidget)
self.colon.setGeometry(QtCore.QRect(470, 130, 21, 31))
self.colon.setObjectName("colon")
self.quatmark = QtWidgets.QLabel(self.centralwidget)
self.quatmark.setGeometry(QtCore.QRect(520, 130, 21, 31))
self.quatmark.setObjectName("quatmark")
self.Z = QtWidgets.QLabel(self.centralwidget)
self.Z.setGeometry(QtCore.QRect(120, 170, 21, 31))
self.Z.setObjectName("Z")
self.X = QtWidgets.QLabel(self.centralwidget)
self.X.setGeometry(QtCore.QRect(160, 170, 21, 31))
self.X.setObjectName("X")
self.C = QtWidgets.QLabel(self.centralwidget)
self.C.setGeometry(QtCore.QRect(210, 170, 21, 31))
self.C.setObjectName("C")
self.V = QtWidgets.QLabel(self.centralwidget)
self.V.setGeometry(QtCore.QRect(250, 170, 21, 31))
self.V.setObjectName("V")
self.B = QtWidgets.QLabel(self.centralwidget)
self.B.setGeometry(QtCore.QRect(290, 170, 21, 31))
self.B.setObjectName("B")
self.N = QtWidgets.QLabel(self.centralwidget)
self.N.setGeometry(QtCore.QRect(330, 170, 21, 31))
self.N.setObjectName("N")
self.M = QtWidgets.QLabel(self.centralwidget)
self.M.setGeometry(QtCore.QRect(370, 170, 21, 31))
self.M.setObjectName("M")
self.rig = QtWidgets.QLabel(self.centralwidget)
self.rig.setGeometry(QtCore.QRect(410, 170, 21, 31))
self.rig.setObjectName("rig")
self.lef = QtWidgets.QLabel(self.centralwidget)
self.lef.setGeometry(QtCore.QRect(450, 170, 21, 31))
self.lef.setObjectName("lef")
self.questmark = QtWidgets.QLabel(self.centralwidget)
self.questmark.setGeometry(QtCore.QRect(500, 170, 21, 31))
self.questmark.setObjectName("questmark")
self.AltR = QtWidgets.QLabel(self.centralwidget)
self.AltR.setGeometry(QtCore.QRect(420, 220, 21, 31))
self.AltR.setObjectName("AltR")
self.CtrlR = QtWidgets.QLabel(self.centralwidget)
self.CtrlR.setGeometry(QtCore.QRect(460, 220, 21, 31))
self.CtrlR.setObjectName("CtrlR")
self.up = QtWidgets.QLabel(self.centralwidget)
self.up.setGeometry(QtCore.QRect(550, 210, 16, 16))
self.up.setObjectName("up")
self.down = QtWidgets.QLabel(self.centralwidget)
self.down.setGeometry(QtCore.QRect(550, 230, 21, 21))
self.down.setObjectName("down")
self.left = QtWidgets.QLabel(self.centralwidget)
self.left.setGeometry(QtCore.QRect(510, 230, 21, 31))
self.left.setObjectName("left")
self.right = QtWidgets.QLabel(self.centralwidget)
self.right.setGeometry(QtCore.QRect(590, 230, 21, 31))
self.right.setObjectName("right")
self.CapsLock = QtWidgets.QLabel(self.centralwidget)
self.CapsLock.setGeometry(QtCore.QRect(30, 140, 61, 31))
self.CapsLock.setObjectName("CapsLock")
self.Q = QtWidgets.QLabel(self.centralwidget)
self.Q.setGeometry(QtCore.QRect(90, 90, 21, 31))
self.Q.setObjectName("Q")
self.E = QtWidgets.QLabel(self.centralwidget)
self.E.setGeometry(QtCore.QRect(180, 90, 21, 31))
self.E.setObjectName("E")
self.R = QtWidgets.QLabel(self.centralwidget)
self.R.setGeometry(QtCore.QRect(220, 90, 21, 31))
self.R.setObjectName("R")
self.T = QtWidgets.QLabel(self.centralwidget)
self.T.setGeometry(QtCore.QRect(260, 90, 21, 31))
self.T.setObjectName("T")
self.Y = QtWidgets.QLabel(self.centralwidget)
self.Y.setGeometry(QtCore.QRect(300, 90, 21, 31))
self.Y.setObjectName("Y")
self.U = QtWidgets.QLabel(self.centralwidget)
self.U.setGeometry(QtCore.QRect(340, 90, 21, 31))
self.U.setObjectName("U")
self.I = QtWidgets.QLabel(self.centralwidget)
self.I.setGeometry(QtCore.QRect(380, 90, 21, 31))
self.I.setObjectName("I")
self.O = QtWidgets.QLabel(self.centralwidget)
self.O.setGeometry(QtCore.QRect(420, 90, 21, 31))
self.O.setObjectName("O")
self.P = QtWidgets.QLabel(self.centralwidget)
self.P.setGeometry(QtCore.QRect(470, 90, 21, 31))
self.P.setObjectName("P")
self.curlybrace1 = QtWidgets.QLabel(self.centralwidget)
self.curlybrace1.setGeometry(QtCore.QRect(500, 90, 21, 31))
self.curlybrace1.setObjectName("curlybrace1")
self.curlybrace2 = QtWidgets.QLabel(self.centralwidget)
self.curlybrace2.setGeometry(QtCore.QRect(550, 90, 20, 31))
self.curlybrace2.setObjectName("curlybrace2")
self.revslash = QtWidgets.QLabel(self.centralwidget)
self.revslash.setGeometry(QtCore.QRect(590, 90, 31, 31))
self.revslash.setObjectName("revslash")
self.n1 = QtWidgets.QLabel(self.centralwidget)
self.n1.setGeometry(QtCore.QRect(70, 50, 21, 31))
self.n1.setObjectName("n1")
self.n2 = QtWidgets.QLabel(self.centralwidget)
self.n2.setGeometry(QtCore.QRect(110, 50, 21, 31))
self.n2.setObjectName("n2")
self.n3 = QtWidgets.QLabel(self.centralwidget)
self.n3.setGeometry(QtCore.QRect(150, 50, 21, 31))
self.n3.setObjectName("n3")
self.n4 = QtWidgets.QLabel(self.centralwidget)
self.n4.setGeometry(QtCore.QRect(190, 50, 21, 31))
self.n4.setObjectName("n4")
self.n5 = QtWidgets.QLabel(self.centralwidget)
self.n5.setGeometry(QtCore.QRect(240, 50, 21, 31))
self.n5.setObjectName("n5")
self.n6 = QtWidgets.QLabel(self.centralwidget)
self.n6.setGeometry(QtCore.QRect(280, 50, 21, 31))
self.n6.setObjectName("n6")
self.n7 = QtWidgets.QLabel(self.centralwidget)
self.n7.setGeometry(QtCore.QRect(320, 50, 21, 31))
self.n7.setObjectName("n7")
self.n8 = QtWidgets.QLabel(self.centralwidget)
self.n8.setGeometry(QtCore.QRect(360, 50, 21, 31))
self.n8.setObjectName("n8")
self.n9 = QtWidgets.QLabel(self.centralwidget)
self.n9.setGeometry(QtCore.QRect(400, 50, 21, 31))
self.n9.setObjectName("n9")
self.n0 = QtWidgets.QLabel(self.centralwidget)
self.n0.setGeometry(QtCore.QRect(440, 50, 21, 31))
self.n0.setObjectName("n0")
self.dash = QtWidgets.QLabel(self.centralwidget)
self.dash.setGeometry(QtCore.QRect(480, 50, 21, 31))
self.dash.setObjectName("dash")
self.plus = QtWidgets.QLabel(self.centralwidget)
self.plus.setGeometry(QtCore.QRect(520, 50, 21, 31))
self.plus.setObjectName("plus")
self.f8 = QtWidgets.QLabel(self.centralwidget)
self.f8.setGeometry(QtCore.QRect(370, 20, 21, 31))
self.f8.setObjectName("f8")
self.f9 = QtWidgets.QLabel(self.centralwidget)
self.f9.setGeometry(QtCore.QRect(420, 20, 21, 31))
self.f9.setObjectName("f9")
self.f10 = QtWidgets.QLabel(self.centralwidget)
self.f10.setGeometry(QtCore.QRect(460, 20, 21, 31))
self.f10.setObjectName("f10")
self.f11 = QtWidgets.QLabel(self.centralwidget)
self.f11.setGeometry(QtCore.QRect(500, 20, 21, 31))
self.f11.setObjectName("f11")
self.f12 = QtWidgets.QLabel(self.centralwidget)
self.f12.setGeometry(QtCore.QRect(550, 20, 21, 31))
self.f12.setObjectName("f12")
self.mouse = QtWidgets.QLabel(self.centralwidget)
self.mouse.setGeometry(QtCore.QRect(590, 0, 401, 361))
self.mouse.setText("")
self.mouse.setPixmap(QtGui.QPixmap("255016A1.png"))
self.mouse.setObjectName("mouse")
self.label = QtWidgets.QLabel(self.centralwidget)
self.label.setGeometry(QtCore.QRect(700, 80, 71, 111))
font = QtGui.QFont()
font.setPointSize(12)
self.label.setFont(font)
self.label.setObjectName("label")
self.rightbuttonmouse = QtWidgets.QLabel(self.centralwidget)
self.rightbuttonmouse.setGeometry(QtCore.QRect(800, 80, 71, 111))
font = QtGui.QFont()
font.setPointSize(12)
self.rightbuttonmouse.setFont(font)
self.rightbuttonmouse.setObjectName("rightbuttonmouse")
self.middlebuttonmouse = QtWidgets.QLabel(self.centralwidget)
self.middlebuttonmouse.setGeometry(QtCore.QRect(780, 50, 16, 51))
self.middlebuttonmouse.setText("")
self.middlebuttonmouse.setObjectName("middlebuttonmouse")
self.space = QtWidgets.QLabel(self.centralwidget)
self.space.setGeometry(QtCore.QRect(200, 220, 201, 31))
self.space.setObjectName("space")
self.time_right = QtWidgets.QLabel(self.centralwidget)
self.time_right.setGeometry(QtCore.QRect(20, 260, 611, 51))
font = QtGui.QFont()
font.setPointSize(9)
self.time_right.setFont(font)
self.time_right.setObjectName("time_right")
self.time_left = QtWidgets.QLabel(self.centralwidget)
self.time_left.setGeometry(QtCore.QRect(20, 300, 611, 51))
font = QtGui.QFont()
font.setPointSize(9)
self.time_left.setFont(font)
self.time_left.setObjectName("time_left")
MainWindow.setCentralWidget(self.centralwidget)
self.menubar = QtWidgets.QMenuBar(MainWindow)
self.menubar.setGeometry(QtCore.QRect(0, 0, 950, 26))
self.menubar.setObjectName("menubar")
MainWindow.setMenuBar(self.menubar)
self.statusbar = QtWidgets.QStatusBar(MainWindow)
self.statusbar.setObjectName("statusbar")
MainWindow.setStatusBar(self.statusbar)
self.retranslateUi(MainWindow)
QtCore.QMetaObject.connectSlotsByName(MainWindow)
def retranslateUi(self, MainWindow):
_translate = QtCore.QCoreApplication.translate
MainWindow.setWindowTitle(_translate("MainWindow", "skolkovo"))
self.f1.setText(_translate("MainWindow", "F1"))
self.f4.setText(_translate("MainWindow", "F4"))
self.f3.setText(_translate("MainWindow", "F3"))
self.f2.setText(_translate("MainWindow", "F2"))
self.esc.setText(_translate("MainWindow", "Esc"))
self.f5.setText(_translate("MainWindow", "F5"))
self.f6.setText(_translate("MainWindow", "F6"))
self.f7.setText(_translate("MainWindow", "F7"))
self.W.setText(_translate("MainWindow", "W"))
self.S.setText(_translate("MainWindow", "S"))
self.A.setText(_translate("MainWindow", "A"))
self.D.setText(_translate("MainWindow", "D"))
self.Ctrl.setText(_translate("MainWindow", "Ctrl"))
self.Alt.setText(_translate("MainWindow", "Alt"))
self.Win.setText(_translate("MainWindow", "Win"))
self.ShifL.setText(_translate("MainWindow", "Shift ⇫"))
self.Enter.setText(_translate("MainWindow", "↵ Enter"))
self.Backspace.setText(_translate("MainWindow", "⇽"))
self.dlt.setText(_translate("MainWindow", "Dlt"))
self.Tab.setText(_translate("MainWindow", "Tab ⭾"))
self.tild.setText(_translate("MainWindow", "`"))
self.ShiftR.setText(_translate("MainWindow", "Shift"))
self.F.setText(_translate("MainWindow", "F"))
self.G.setText(_translate("MainWindow", "G"))
self.H.setText(_translate("MainWindow", "H"))
self.J.setText(_translate("MainWindow", "J"))
self.K.setText(_translate("MainWindow", " K"))
self.L.setText(_translate("MainWindow", " L"))
self.colon.setText(_translate("MainWindow", " : ;"))
self.quatmark.setText(_translate("MainWindow", "\""))
self.Z.setText(_translate("MainWindow", "Z"))
self.X.setText(_translate("MainWindow", "X"))
self.C.setText(_translate("MainWindow", "C"))
self.V.setText(_translate("MainWindow", "V"))
self.B.setText(_translate("MainWindow", "B"))
self.N.setText(_translate("MainWindow", "N"))
self.M.setText(_translate("MainWindow", "M"))
self.rig.setText(_translate("MainWindow", "<"))
self.lef.setText(_translate("MainWindow", ">"))
self.questmark.setText(_translate("MainWindow", "?"))
self.AltR.setText(_translate("MainWindow", "Alt"))
self.CtrlR.setText(_translate("MainWindow", "Ctrl"))
self.up.setText(_translate("MainWindow", " ↑"))
self.down.setText(_translate("MainWindow", " ↓"))
self.left.setText(_translate("MainWindow", "←"))
self.right.setText(_translate("MainWindow", "→"))
self.CapsLock.setText(_translate("MainWindow", "Caps Lock"))
self.Q.setText(_translate("MainWindow", "Q"))
self.E.setText(_translate("MainWindow", "E"))
self.R.setText(_translate("MainWindow", "R"))
self.T.setText(_translate("MainWindow", "T"))
self.Y.setText(_translate("MainWindow", "Y"))
self.U.setText(_translate("MainWindow", "U"))
self.I.setText(_translate("MainWindow", " I"))
self.O.setText(_translate("MainWindow", " O"))
self.P.setText(_translate("MainWindow", "P"))
self.curlybrace1.setText(_translate("MainWindow", " {"))
self.curlybrace2.setText(_translate("MainWindow", "}"))
self.revslash.setText(_translate("MainWindow", "| \\"))
self.n1.setText(_translate("MainWindow", "1"))
self.n2.setText(_translate("MainWindow", "2"))
self.n3.setText(_translate("MainWindow", "3"))
self.n4.setText(_translate("MainWindow", "4"))
self.n5.setText(_translate("MainWindow", "5"))
self.n6.setText(_translate("MainWindow", "6"))
self.n7.setText(_translate("MainWindow", "7"))
self.n8.setText(_translate("MainWindow", "8"))
self.n9.setText(_translate("MainWindow", "9"))
self.n0.setText(_translate("MainWindow", "0"))
self.dash.setText(_translate("MainWindow", "- _"))
self.plus.setText(_translate("MainWindow", "+ ="))
self.f8.setText(_translate("MainWindow", "F8"))
self.f9.setText(_translate("MainWindow", "F9"))
self.f10.setText(_translate("MainWindow", "F10"))
self.f11.setText(_translate("MainWindow", "F11"))
self.f12.setText(_translate("MainWindow", "F12"))
self.label.setText(_translate("MainWindow", " ЛКМ"))
self.rightbuttonmouse.setText(_translate("MainWindow", " ПКМ"))
self.space.setText(_translate("MainWindow", " Space"))
self.time_right.setText(_translate("MainWindow", "Время нажатия на кнопку A: "))
self.time_left.setText(_translate("MainWindow", "Время нажатия на кнопку D: "))
keymap = {}
for key, value in vars(Qt).items():
if isinstance(value, Qt.Key):
keymap[value] = key.partition('_')[2]
modmap = {
Qt.ControlModifier: keymap[Qt.Key_Control],
Qt.AltModifier: keymap[Qt.Key_Alt],
Qt.ShiftModifier: keymap[Qt.Key_Shift],
Qt.MetaModifier: keymap[Qt.Key_Meta],
Qt.GroupSwitchModifier: keymap[Qt.Key_AltGr],
Qt.KeypadModifier: keymap[Qt.Key_NumLock],
}
class Example(QMainWindow, Ui_MainWindow):
def __init__(self):
super().__init__()
self.setupUi(self)
self.prev_key = []
self.key_by_time = dict()
def mousePressEvent(self, ev):
if ev.button() == Qt.LeftButton:
self.label.setStyleSheet("color: red;")
self.prev_key = [self.label, ]
elif ev.button() == Qt.RightButton:
self.rightbuttonmouse.setStyleSheet("color: red;")
self.prev_key = [self.rightbuttonmouse, ]
elif ev.button() == Qt.MiddleButton:
self.middlebuttonmouse.setStyleSheet("background-color: red; color: red;")
self.prev_key = [self.middlebuttonmouse, ]
def mouseReleaseEvent(self, ev):
if ev.button() == Qt.LeftButton:
self.label.setStyleSheet("color: black;")
self.prev_key = [self.label, ]
elif ev.button() == Qt.RightButton:
self.rightbuttonmouse.setStyleSheet("color: black;")
self.prev_key = [self.rightbuttonmouse, ]
elif ev.button() == Qt.MiddleButton:
self.middlebuttonmouse.setStyleSheet("background-color: ;")
self.prev_key = [self.middlebuttonmouse, ]
def keyPressEvent(self, event):
_key, _keys = self.keyevent_to_string(event)
key = event.key()
if not event.isAutoRepeat() and key not in self.key_by_time:
self.key_by_time[key] = time.perf_counter()
if self.prev_key:
for k in self.prev_key:
k.setStyleSheet("")
if _keys[0] == 'Control' and key == Qt.Key_W:
self.W.setStyleSheet("color: red;")
self.Ctrl.setStyleSheet("color: red;")
self.prev_key = [self.Ctrl, self.W]
elif _keys[0] == 'Alt' and key == Qt.Key_W:
self.W.setStyleSheet("color: red;")
self.Alt.setStyleSheet("color: red;")
self.prev_key = [self.Alt, self.W]
elif _keys[0] == 'Shift' and key == Qt.Key_W:
self.W.setStyleSheet("color: red;")
self.ShifL.setStyleSheet("color: red;")
self.prev_key = [self.ShifL, self.W]
elif _keys[0] == 'Shift' and key == Qt.Key_Alt:
self.Alt.setStyleSheet("color: red;")
self.ShifL.setStyleSheet("color: red;")
self.prev_key = [self.ShifL, self.Alt]
elif key == Qt.Key_W:
self.W.setStyleSheet("color: red;")
self.prev_key = [self.W, ]
elif key == Qt.Key_A:
self.A.setStyleSheet("color: red;")
self.prev_key = [self.A, ]
elif key == Qt.Key_S:
self.S.setStyleSheet("color: red;")
self.prev_key = [self.S, ]
elif key == Qt.Key_D:
self.D.setStyleSheet("color: red;")
self.prev_key = [self.D, ]
elif key == Qt.Key_Space:
self.space.setStyleSheet("color: red;")
self.prev_key = [self.D, ]
elif key == Qt.Key_Escape:
self.esc.setStyleSheet("color: red;")
self.prev_key = [self.esc, ]
elif key == Qt.Key_Tab:
self.Tab.setStyleSheet("color: red;")
self.prev_key = [self.Tab, ]
elif key == Qt.Key_Backspace:
self.Backspace.setStyleSheet("color: red;")
self.prev_key = [self.Backspace, ]
elif key == Qt.Key_Enter:
self.Enter.setStyleSheet("color: red;")
self.prev_key = [self.Enter, ]
elif key == Qt.Key_Return:
self.Enter.setStyleSheet("color: red;")
self.prev_key = [self.Enter, ]
elif key == Qt.Key_QuoteLeft:
self.tild.setStyleSheet("color: red;")
self.prev_key = [self.tild, ]
elif key == Qt.Key_Delete:
self.dlt.setStyleSheet("color: red;")
self.prev_key = [self.dlt, ]
elif key == Qt.Key_Shift:
self.ShifL.setStyleSheet("color: red;")
self.ShiftR.setStyleSheet("color: red;")
self.prev_key = [self.ShifL, self.ShiftR]
elif key == Qt.Key_Control:
self.Ctrl.setStyleSheet("color: red;")
self.prev_key = [self.Ctrl, ]
elif key == Qt.Key_Alt:
self.Alt.setStyleSheet("color: red;")
self.prev_key = [self.Alt, ]
elif key == Qt.Key_Meta:
self.Win.setStyleSheet(" color: red;")
self.prev_key = [self.Win, ]
elif key == Qt.Key_Q:
self.Q.setStyleSheet("color: red;")
self.prev_key = [self.Q, ]
elif key == Qt.Key_E:
self.E.setStyleSheet("color: red;")
self.prev_key = [self.E, ]
elif key == Qt.Key_T:
self.T.setStyleSheet("color: red;")
self.prev_key = [self.T, ]
elif key == Qt.Key_R:
self.R.setStyleSheet("color: red;")
self.prev_key = [self.R, ]
elif key == Qt.Key_Y:
self.Y.setStyleSheet("color: red;")
self.prev_key = [self.Y, ]
elif key == Qt.Key_U:
self.U.setStyleSheet("color: red;")
self.prev_key = [self.U, ]
elif key == Qt.Key_I:
self.I.setStyleSheet("color: red;")
self.prev_key = [self.I, ]
elif key == Qt.Key_O:
self.O.setStyleSheet("color: red;")
self.prev_key = [self.O, ]
elif key == Qt.Key_P:
self.P.setStyleSheet("color: red;")
self.prev_key = [self.P, ]
elif key == Qt.Key_F:
self.F.setStyleSheet("color: red;")
self.prev_key = [self.F, ]
elif key == Qt.Key_G:
self.G.setStyleSheet("color: red;")
self.prev_key = [self.G, ]
elif key == Qt.Key_H:
self.H.setStyleSheet("color: red;")
self.prev_key = [self.H, ]
elif key == Qt.Key_J:
self.J.setStyleSheet("color: red;")
self.prev_key = [self.J, ]
elif key == Qt.Key_K:
self.K.setStyleSheet("color: red;")
self.prev_key = [self.K, ]
elif key == Qt.Key_L:
self.L.setStyleSheet("color: red;")
self.prev_key = [self.L, ]
elif key == Qt.Key_Z:
self.Z.setStyleSheet("color: red;")
self.prev_key = [self.Z, ]
elif key == Qt.Key_X:
self.X.setStyleSheet("color: red;")
self.prev_key = [self.X, ]
elif key == Qt.Key_C:
self.C.setStyleSheet("color: red;")
self.prev_key = [self.C, ]
elif key == Qt.Key_V:
self.V.setStyleSheet("color: red;")
self.prev_key = [self.V, ]
elif key == Qt.Key_B:
self.B.setStyleSheet("color: red;")
self.prev_key = [self.B, ]
elif key == Qt.Key_N:
self.N.setStyleSheet("color: red;")
self.prev_key = [self.N, ]
elif key == Qt.Key_M:
self.M.setStyleSheet("color: red;")
self.prev_key = [self.M, ]
elif key == Qt.Key_F1:
self.f1.setStyleSheet("color: red;")
self.prev_key = [self.f1, ]
elif key == Qt.Key_F2:
self.f2.setStyleSheet("color: red;")
self.prev_key = [self.f2, ]
elif key == Qt.Key_F3:
self.f3.setStyleSheet("color: red;")
self.prev_key = [self.f3, ]
elif key == Qt.Key_F4:
self.f4.setStyleSheet("color: red;")
self.prev_key = [self.f4, ]
elif key == Qt.Key_F5:
self.f5.setStyleSheet("color: red;")
self.prev_key = [self.f5, ]
elif key == Qt.Key_F6:
self.f6.setStyleSheet("color: red;")
self.prev_key = [self.f6, ]
elif key == Qt.Key_F7:
self.f7.setStyleSheet("color: red;")
self.prev_key = [self.f7, ]
elif key == Qt.Key_F8:
self.f8.setStyleSheet("color: red;")
self.prev_key = [self.f8, ]
elif key == Qt.Key_F9:
self.f9.setStyleSheet("color: red;")
self.prev_key = [self.f9, ]
elif key == Qt.Key_F10:
self.f10.setStyleSheet("color: red;")
self.prev_key = [self.f10, ]
elif key == Qt.Key_F11:
self.f11.setStyleSheet("color: red;")
self.prev_key = [self.f11, ]
elif key == Qt.Key_F12:
self.f12.setStyleSheet("color: red;")
self.prev_key = [self.f12, ]
elif key == Qt.Key_1:
self.n1.setStyleSheet("color: red;")
self.prev_key = [self.n1,]
elif key == Qt.Key_2:
self.n2.setStyleSheet("color: red;")
self.prev_key = [self.n2, ]
elif key == Qt.Key_3:
self.n3.setStyleSheet("color: red;")
self.prev_key = [self.n3, ]
elif key == Qt.Key_4:
self.n4.setStyleSheet("color: red;")
self.prev_key = [self.n4, ]
elif key == Qt.Key_5:
self.n5.setStyleSheet("color: red;")
self.prev_key = [self.n5, ]
elif key == Qt.Key_6:
self.n6.setStyleSheet("color: red;")
self.prev_key = [self.n6, ]
elif key == Qt.Key_7:
self.n7.setStyleSheet("color: red;")
self.prev_key = [self.n7, ]
elif key == Qt.Key_8:
self.n8.setStyleSheet("color: red;")
self.prev_key = [self.n8, ]
elif key == Qt.Key_9:
self.n9.setStyleSheet("color: red;")
self.prev_key = [self.n9, ]
elif key == Qt.Key_0:
self.n0.setStyleSheet("color: red;")
self.prev_key = [self.n0, ]
elif key == Qt.Key_CapsLock:
self.CapsLock.setStyleSheet("color: red;")
self.prev_key = [self.CapsLock, ]
elif key == Qt.Key_Apostrophe:
self.quatmark.setStyleSheet("color: red;")
self.prev_key = [self.quatmark, ]
elif key == Qt.Key_Backslash:
self.revslash.setStyleSheet("color: red;")
self.prev_key = [self.revslash, ]
elif key == Qt.Key_Up:
self.up.setStyleSheet("color: red;")
self.prev_key = [self.up, ]
elif key == Qt.Key_Down:
self.down.setStyleSheet("color: red;")
self.prev_key = [self.down, ]
elif key == Qt.Key_Right:
self.right.setStyleSheet("color: red;")
self.prev_key = [self.right, ]
elif key == Qt.Key_Left:
self.left.setStyleSheet("color: red;")
self.prev_key = [self.left, ]
elif key == Qt.Key_BracketLeft:
self.curlybrace1.setStyleSheet("color: red;")
self.prev_key = [self.curlybrace1, ]
elif key == Qt.Key_BracketRight:
self.curlybrace2.setStyleSheet("color: red;")
self.prev_key = [self.curlybrace2, ]
elif key == Qt.Key_Comma:
self.rig.setStyleSheet("color: red;")
self.prev_key = [self.rig, ]
elif key == Qt.Key_Period:
self.lef.setStyleSheet("color: red;")
self.prev_key = [self.lef, ]
elif key == Qt.Key_Slash:
self.questmark.setStyleSheet("color: red;")
self.prev_key = [self.questmark, ]
elif key == Qt.Key_Minus:
self.dash.setStyleSheet("color: red;")
self.prev_key = [self.dash, ]
elif key == Qt.Key_Semicolon:
self.colon.setStyleSheet("color: red;")
self.prev_key = [self.colon, ]
elif key == Qt.Key_Equal:
self.plus.setStyleSheet("color: red;")
self.prev_key = [self.plus, ]
def keyevent_to_string(self, event):
sequence = []
for modifier, text in modmap.items():
if event.modifiers() & modifier:
sequence.append(text)
key = keymap.get(event.key(), event.text())
if key not in sequence:
sequence.append(key)
return '+'.join(sequence), sequence
def keyReleaseEvent(self, event):
_key, _keys = self.keyevent_to_string(event)
key = event.key()
if self.prev_key:
for k in self.prev_key:
k.setStyleSheet("")
if _keys[0] == 'Control' and key == Qt.Key_W:
self.W.setStyleSheet("color: black;")
self.Ctrl.setStyleSheet("color: black;")
self.prev_key = [self.Ctrl, self.W]
# ...
elif _keys[0] == 'Alt' and key == Qt.Key_W:
self.W.setStyleSheet("color: black;")
self.Alt.setStyleSheet("color: black;")
self.prev_key = [self.Alt, self.W]
elif key == Qt.Key_BracketRight:
self.curlybrace2.setStyleSheet("color: black;")
self.prev_key = [self.curlybrace2, ]
elif key == Qt.Key_Semicolon:
self.colon.setStyleSheet("color: black;")
self.prev_key = [self.colon, ]
elif key == Qt.Key_BracketLeft:
self.curlybrace1.setStyleSheet("color: black;")
self.prev_key = [self.curlybrace1, ]
elif key == Qt.Key_BracketLeft:
self.curlybrace1.setStyleSheet("color: black;")
self.prev_key = [self.curlybrace1, ]
elif key == Qt.Key_Space:
self.space.setStyleSheet("color: black;")
self.prev_key = [self.space, ]
elif key == Qt.Key_BraceLeft:
self.curlybrace1.setStyleSheet("color: black;")
self.prev_key = [self.curlybrace1, ]
elif _keys[0] == 'Shift' and key == Qt.Key_W:
self.W.setStyleSheet("color: black;")
self.ShifL.setStyleSheet("color: black;")
self.prev_key = [self.ShifL, self.W]
elif _keys[0] == 'Shift' and key == Qt.Key_Alt:
self.Alt.setStyleSheet("color: black;")
self.ShifL.setStyleSheet("color: black;")
self.prev_key = [self.ShifL, self.Alt]
elif key == Qt.Key_W:
self.W.setStyleSheet("color: black;")
self.prev_key = [self.W, ]
elif key == Qt.Key_Comma:
self.lef.setStyleSheet("color: black;")
self.prev_key = [self.lef, ]
elif key == Qt.Key_Period:
self.rig.setStyleSheet("color: black;")
self.prev_key = [self.rig, ]
elif key == Qt.Key_Slash:
self.questmark.setStyleSheet("color: black;")
self.prev_key = [self.questmark, ]
elif key == Qt.Key_A:
self.A.setStyleSheet("color: black;")
self.prev_key = [self.A, ]
if not event.isAutoRepeat() and key in self.key_by_time:
t = self.key_by_time.pop(key)
self.time_right.setText(f'Кнопка {key!r} была нажата {time.perf_counter() - t:.2f} секунд')
elif key == Qt.Key_S:
self.S.setStyleSheet("color: black;")
self.prev_key = [self.S, ]
elif key == Qt.Key_D:
self.D.setStyleSheet("color: black;")
self.prev_key = [self.D, ]
elif key == Qt.Key_Escape:
self.esc.setStyleSheet("color: black;")
self.prev_key = [self.esc, ]
elif key == Qt.Key_Tab:
self.Tab.setStyleSheet("color: black;")
self.prev_key = [self.Tab, ]
elif key == Qt.Key_Backspace:
self.Backspace.setStyleSheet("color: black;")
self.prev_key = [self.Backspace, ]
elif key == Qt.Key_Enter:
self.Enter.setStyleSheet("color: black;")
self.prev_key = [self.Enter, ]
elif key == Qt.Key_Return:
self.Enter.setStyleSheet("color: black;")
self.prev_key = [self.Enter, ]
elif key == Qt.Key_QuoteLeft:
self.tild.setStyleSheet("color: black;")
self.prev_key = [self.tild, ]
elif key == Qt.Key_Delete:
self.dlt.setStyleSheet("color: black;")
self.prev_key = [self.dlt, ]
elif key == Qt.Key_Shift:
self.ShifL.setStyleSheet("color: black;")
self.ShiftR.setStyleSheet("color: black;")
self.prev_key = [self.ShifL, self.ShiftR]
elif key == Qt.Key_Control:
self.Ctrl.setStyleSheet("color: black;")
self.prev_key = [self.Ctrl, ]
elif key == Qt.Key_Alt:
self.Alt.setStyleSheet("color: black;")
self.prev_key = [self.Alt, ]
elif key == Qt.Key_Meta:
self.Win.setStyleSheet(" color: black;")
self.prev_key = [self.Win, ]
elif key == Qt.Key_Q:
self.Q.setStyleSheet("color: black;")
self.prev_key = [self.Q, ]
elif key == Qt.Key_E:
self.E.setStyleSheet("color: black;")
self.prev_key = [self.E, ]
elif key == Qt.Key_T:
self.T.setStyleSheet("color: black;")
self.prev_key = [self.T, ]
elif key == Qt.Key_R:
self.R.setStyleSheet("color: black;")
self.prev_key = [self.R, ]
elif key == Qt.Key_Y:
self.Y.setStyleSheet("color: black;")
self.prev_key = [self.Y, ]
elif key == Qt.Key_U:
self.U.setStyleSheet("color: black;")
self.prev_key = [self.U, ]
elif key == Qt.Key_I:
self.I.setStyleSheet("color: black;")
self.prev_key = [self.I, ]
elif key == Qt.Key_O:
self.O.setStyleSheet("color: black;")
self.prev_key = [self.O, ]
elif key == Qt.Key_P:
self.P.setStyleSheet("color: black;")
self.prev_key = [self.P, ]
elif key == Qt.Key_F:
self.F.setStyleSheet("color: black;")
self.prev_key = [self.F, ]
elif key == Qt.Key_G:
self.G.setStyleSheet("color: black;")
self.prev_key = [self.G, ]
elif key == Qt.Key_H:
self.H.setStyleSheet("color: black;")
self.prev_key = [self.H, ]
elif key == Qt.Key_J:
self.J.setStyleSheet("color: black;")
self.prev_key = [self.J, ]
elif key == Qt.Key_K:
self.K.setStyleSheet("color: black;")
self.prev_key = [self.K, ]
elif key == Qt.Key_L:
self.L.setStyleSheet("color: black;")
self.prev_key = [self.L, ]
elif key == Qt.Key_Z:
self.Z.setStyleSheet("color: black;")
self.prev_key = [self.Z, ]
elif key == Qt.Key_X:
self.X.setStyleSheet("color: black;")
self.prev_key = [self.X, ]
elif key == Qt.Key_C:
self.C.setStyleSheet("color: black;")
self.prev_key = [self.C, ]
elif key == Qt.Key_V:
self.V.setStyleSheet("color: black;")
self.prev_key = [self.V, ]
elif key == Qt.Key_B:
self.B.setStyleSheet("color: black;")
self.prev_key = [self.B, ]
elif key == Qt.Key_N:
self.N.setStyleSheet("color: black;")
self.prev_key = [self.N, ]
elif key == Qt.Key_M:
self.M.setStyleSheet("color: black;")
self.prev_key = [self.M, ]
elif key == Qt.Key_F1:
self.f1.setStyleSheet("color: black;")
self.prev_key = [self.f1, ]
elif key == Qt.Key_F2:
self.f2.setStyleSheet("color: black;")
self.prev_key = [self.f2, ]
elif key == Qt.Key_F3:
self.f3.setStyleSheet("color: black;")
self.prev_key = [self.f3, ]
elif key == Qt.Key_F4:
self.f4.setStyleSheet("color: black;")
self.prev_key = [self.f4, ]
elif key == Qt.Key_F5:
self.f5.setStyleSheet("color: black;")
self.prev_key = [self.f5, ]
elif key == Qt.Key_F6:
self.f6.setStyleSheet("color: black;")
self.prev_key = [self.f6, ]
elif key == Qt.Key_F7:
self.f7.setStyleSheet("color: black;")
self.prev_key = [self.f7, ]
elif key == Qt.Key_F8:
self.f8.setStyleSheet("color: black;")
self.prev_key = [self.f8, ]
elif key == Qt.Key_F9:
self.f9.setStyleSheet("color: black;")
self.prev_key = [self.f9, ]
elif key == Qt.Key_F10:
self.f10.setStyleSheet("color: black;")
self.prev_key = [self.f10, ]
elif key == Qt.Key_F11:
self.f11.setStyleSheet("color: black;")
self.prev_key = [self.f11, ]
elif key == Qt.Key_F12:
self.f12.setStyleSheet("color: black;")
self.prev_key = [self.f12, ]
elif key == Qt.Key_1:
self.n1.setStyleSheet("color: black;")
self.prev_key = [self.n1, ]
elif key == Qt.Key_2:
self.n2.setStyleSheet("color: black;")
self.prev_key = [self.n2, ]
elif key == Qt.Key_3:
self.n3.setStyleSheet("color: black;")
self.prev_key = [self.n3, ]
elif key == Qt.Key_4:
self.n4.setStyleSheet("color: black;")
self.prev_key = [self.n4, ]
elif key == Qt.Key_5:
self.n5.setStyleSheet("color: black;")
self.prev_key = [self.n5, ]
elif key == Qt.Key_6:
self.n6.setStyleSheet("color: black;")
self.prev_key = [self.n6, ]
elif key == Qt.Key_7:
self.n7.setStyleSheet("color: black;")
self.prev_key = [self.n7, ]
elif key == Qt.Key_8:
self.n8.setStyleSheet("color: black;")
self.prev_key = [self.n8, ]
elif key == Qt.Key_9:
self.n9.setStyleSheet("color: black;")
self.prev_key = [self.n9, ]
elif key == Qt.Key_0:
self.n0.setStyleSheet("color: black;")
self.prev_key = [self.n0, ]
elif key == Qt.Key_CapsLock:
self.CapsLock.setStyleSheet("color: black;")
self.prev_key = [self.CapsLock, ]
if __name__ == "__main__":
import sys
app = QtWidgets.QApplication(sys.argv)
w = Example()
w.show()
sys.exit(app.exec_())
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment