Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- import time
- import keyboard
- from pynput import mouse
- from PyQt5.Qt import *
- from PyQt5 import QtCore, QtGui, QtWidgets
- from keyboard_ui import Ui_MainWindow
- ##########СЛОВАРИ##########
- KeyToStr = {}
- KeyToStr[81] = "Q"
- KeyToStr[87] = "W"
- KeyToStr[82] = "R"
- KeyToStr[69] = "E"
- KeyToStr[84] = "T"
- KeyToStr[89] = "Y"
- KeyToStr[85] = "U"
- KeyToStr[73] = "I"
- KeyToStr[79] = "O"
- KeyToStr[80] = "P"
- KeyToStr[65] = "A"
- KeyToStr[83] = "S"
- KeyToStr[68] = "D"
- KeyToStr[70] = "F"
- KeyToStr[71] = "G"
- KeyToStr[72] = "H"
- KeyToStr[74] = "J"
- KeyToStr[75] = "K"
- KeyToStr[76] = "L"
- KeyToStr[90] = "Z"
- KeyToStr[88] = "X"
- KeyToStr[67] = "C"
- KeyToStr[86] = "V"
- KeyToStr[66] = "B"
- KeyToStr[78] = "N"
- KeyToStr[77] = "M"
- KeyToStr[1049] = "Q"
- KeyToStr[1062] = "W"
- KeyToStr[1059] = "E"
- KeyToStr[1050] = "R"
- KeyToStr[1045] = "T"
- KeyToStr[1053] = "Y"
- KeyToStr[1043] = "U"
- KeyToStr[1064] = "I"
- KeyToStr[1065] = "O"
- KeyToStr[1047] = "P"
- KeyToStr[1060] = "A"
- KeyToStr[1067] = "S"
- KeyToStr[1042] = "D"
- KeyToStr[1040] = "F"
- KeyToStr[1055] = "G"
- KeyToStr[1056] = "H"
- KeyToStr[1054] = "J"
- KeyToStr[1051] = "K"
- KeyToStr[1044] = "L"
- KeyToStr[1071] = "Z"
- KeyToStr[1063] = "X"
- KeyToStr[1057] = "C"
- KeyToStr[1052] = "V"
- KeyToStr[1048] = "B"
- KeyToStr[1058] = "N"
- KeyToStr[1068] = "M"
- KeyToStr[16777250] = "win"
- KeyToStr[16777216] = "esc"
- KeyToStr[96] = "`"
- KeyToStr[16777217] = "tab"
- KeyToStr[16777252] = "caps lock"
- KeyToStr[16777248] = "shift"
- KeyToStr[16777249] = "ctrl"
- KeyToStr[16777251] = "alt"
- KeyToStr[32] = "space"
- KeyToStr[16777234] = "left" #стрелки
- KeyToStr[16777236] = "right"
- KeyToStr[16777237] = "down"
- KeyToStr[16777235] = "up"
- KeyToStr[16777220] = "enter"
- KeyToStr[44] = ","
- KeyToStr[46] = "."
- KeyToStr[47] = "/"
- KeyToStr[39] = "\'"
- KeyToStr[59] = ";"
- KeyToStr[92] = "\\"
- KeyToStr[16777219] = "backspace"
- KeyToStr[16777223] = "delete"
- KeyToStr[93] = "]"
- KeyToStr[91] = "["
- KeyToStr[61] = "="
- KeyToStr[45] = "-"
- KeyToStr[48] = "0"
- KeyToStr[57] = "9"
- KeyToStr[56] = "8"
- KeyToStr[55] = "7"
- KeyToStr[54] = "6"
- KeyToStr[53] = "5"
- KeyToStr[52] = "4"
- KeyToStr[51] = "3"
- KeyToStr[50] = "2"
- KeyToStr[49] = "1"
- KeyToStr[16777264] = "f1"
- KeyToStr[16777265] = "f2"
- KeyToStr[16777266] = "f3"
- KeyToStr[16777267] = "f4"
- KeyToStr[16777217] = "tab"
- KeyToStr[16777268] = "f5"
- KeyToStr[16777269] = "f6"
- KeyToStr[16777270] = "f7"
- KeyToStr[16777271] = "f8"
- KeyToStr[16777272] = "f9"
- KeyToStr[16777273] = "f10"
- KeyToStr[16777274] = "f11"
- KeyToStr[16777275] = "f12"
- ########for keyboard########
- KeyToStr["LEFT WINDOWS"] = "win"
- KeyToStr["ESC"] = "esc"
- KeyToStr["`"] = "`"
- KeyToStr["CAPS LOCK"] = "caps lock"
- KeyToStr["TAB"] = "tab"
- KeyToStr["SHIFT"] = "shift"
- KeyToStr["CTRL"] = "ctrl"
- KeyToStr["ALT"] = "alt"
- KeyToStr["SPACE"] = "space"
- KeyToStr["LEFT"] = "left" #стрелки
- KeyToStr["RIGHT"] = "right"
- KeyToStr["DOWN"] = "down"
- KeyToStr["UP"] = "up"
- KeyToStr["ENTER"] = "enter"
- KeyToStr["\'"] = "\'"
- KeyToStr["."] = "."
- KeyToStr[","] = ","
- KeyToStr["'"] = "\'"
- KeyToStr["/"] = "/"
- KeyToStr[";"] = ";"
- KeyToStr["\\"] = "\\"
- KeyToStr["BACKSPACE"] = "backspace"
- KeyToStr["DELETE"] = "delete"
- KeyToStr["]"] = "]"
- KeyToStr["["] = "["
- KeyToStr["="] = "="
- KeyToStr["-"] = "-"
- KeyToStr["0"] = "0"
- KeyToStr["9"] = "9"
- KeyToStr["8"] = "8"
- KeyToStr["7"] = "7"
- KeyToStr["6"] = "6"
- KeyToStr["5"] = "5"
- KeyToStr["4"] = "4"
- KeyToStr["3"] = "3"
- KeyToStr["2"] = "2"
- KeyToStr["1"] = "1"
- KeyToStr["F1"] = "f1"
- KeyToStr["F2"] = "f2"
- KeyToStr["F3"] = "f3"
- KeyToStr["F4"] = "f4"
- KeyToStr["F5"] = "f5"
- KeyToStr["F6"] = "f6"
- KeyToStr["F7"] = "f7"
- KeyToStr["F8"] = "f8"
- KeyToStr["F9"] = "f9"
- KeyToStr["F10"] = "f10"
- KeyToStr["F11"] = "f11"
- KeyToStr["F12"] = "f12"
- KeyToStr["Q"] = "Q"
- KeyToStr["W"] = "W"
- KeyToStr["R"] = "R"
- KeyToStr["E"] = "E"
- KeyToStr["T"] = "T"
- KeyToStr["Y"] = "Y"
- KeyToStr["U"] = "U"
- KeyToStr["I"] = "I"
- KeyToStr["O"] = "O"
- KeyToStr["P"] = "P"
- KeyToStr["A"] = "A"
- KeyToStr["S"] = "S"
- KeyToStr["D"] = "D"
- KeyToStr["F"] = "F"
- KeyToStr["G"] = "G"
- KeyToStr["H"] = "H"
- KeyToStr["J"] = "J"
- KeyToStr["K"] = "K"
- KeyToStr["L"] = "L"
- KeyToStr["Z"] = "Z"
- KeyToStr["X"] = "X"
- KeyToStr["C"] = "C"
- KeyToStr["V"] = "V"
- KeyToStr["B"] = "B"
- KeyToStr["N"] = "N"
- KeyToStr["M"] = "M"
- 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.mouse_listener = mouse.Listener(on_click=self.on_click_mouse)
- self.mouse_listener.start()
- self.qwindowIsActive = True
- self.hook = None
- self.close_button.clicked.connect(self.on_click_close_button)
- self.minimize_button.clicked.connect(self.on_click_minimize_button)
- QTimer.singleShot(0, self.on_qwindow)
- def on_click_minimize_button(self):
- self.showMinimized()
- def on_click_close_button(self):
- sys.exit()
- def on_click_mouse(self, x, y, button, pressed):
- if pressed:
- if button == button.left:
- self.left_Mouse.setStyleSheet("color: red;")
- elif button == button.right:
- self.right_mouse.setStyleSheet("color: red;")
- else:
- self.middle_mouse.setStyleSheet("background-color: red;")
- else:
- if button == button.left:
- self.left_Mouse.setStyleSheet("color: black;")
- elif button == button.right:
- self.right_mouse.setStyleSheet("color: black;")
- else:
- self.middle_mouse.setStyleSheet("background-color: ;")
- def keyPressEvent(self, event):
- key = event.key()
- name = KeyToStr[key]
- self.keys[name].setStyleSheet("color: red;")
- def keyReleaseEvent(self, event):
- key = event.key()
- name = KeyToStr[key]
- self.keys[name].setStyleSheet("color: black;")
- def on_qwindow(self):
- self.qwindow = self.windowHandle()
- self.qwindow.activeChanged.connect(self.handle_activeChanged)
- def handle_activeChanged(self):
- if self.qwindow.isActive():
- self.qwindowIsActive = True
- else:
- self.qwindowIsActive = False
- self.setGrabbing()
- def setGrabbing(self):
- if not self.qwindowIsActive:
- self.hook = keyboard.hook(self.keyboardEventReceived)
- else:
- if self.hook:
- keyboard.unhook(self.hook)
- def keyboardEventReceived(self, event):
- key = event.name
- key = key.upper()
- if event.event_type == 'down':
- name = KeyToStr[key]
- self.keys[name].setStyleSheet("color: red; ")
- if event.event_type == 'up':
- name = KeyToStr[key]
- self.keys[name].setStyleSheet("color: black; ")
- def closeEvent(self, event):
- txt = open("close_info.txt", "w")
- txt.write("Close")
- txt.close()
- if __name__ == "__main__":
- import sys
- app = QApplication(sys.argv)
- w = Example()
- w.show()
- sys.exit(app.exec_())
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement