Advertisement
kristinaloh

Untitled

Apr 18th, 2021
111
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 7.63 KB | None | 0 0
  1. import time
  2. import keyboard      
  3. from pynput import mouse                          
  4. from PyQt5.Qt import *
  5. from PyQt5 import QtCore, QtGui, QtWidgets
  6. from keyboard_ui import Ui_MainWindow
  7.  
  8. ##########СЛОВАРИ##########
  9. KeyToStr = {}
  10. KeyToStr[81] = "Q"
  11. KeyToStr[87] = "W"
  12. KeyToStr[82] = "R"
  13. KeyToStr[69] = "E"
  14. KeyToStr[84] = "T"
  15. KeyToStr[89] = "Y"
  16. KeyToStr[85] = "U"
  17. KeyToStr[73] = "I"
  18. KeyToStr[79] = "O"
  19. KeyToStr[80] = "P"
  20. KeyToStr[65] = "A"
  21. KeyToStr[83] = "S"
  22. KeyToStr[68] = "D"
  23. KeyToStr[70] = "F"
  24. KeyToStr[71] = "G"
  25. KeyToStr[72] = "H"
  26. KeyToStr[74] = "J"
  27. KeyToStr[75] = "K"
  28. KeyToStr[76] = "L"
  29. KeyToStr[90] = "Z"
  30. KeyToStr[88] = "X"
  31. KeyToStr[67] = "C"
  32. KeyToStr[86] = "V"
  33. KeyToStr[66] = "B"
  34. KeyToStr[78] = "N"
  35. KeyToStr[77] = "M"
  36.  
  37. KeyToStr[1049] = "Q"
  38. KeyToStr[1062] = "W"
  39. KeyToStr[1059] = "E"
  40. KeyToStr[1050] = "R"
  41. KeyToStr[1045] = "T"
  42. KeyToStr[1053] = "Y"
  43. KeyToStr[1043] = "U"
  44. KeyToStr[1064] = "I"
  45. KeyToStr[1065] = "O"
  46. KeyToStr[1047] = "P"
  47. KeyToStr[1060] = "A"
  48. KeyToStr[1067] = "S"
  49. KeyToStr[1042] = "D"
  50. KeyToStr[1040] = "F"
  51. KeyToStr[1055] = "G"
  52. KeyToStr[1056] = "H"
  53. KeyToStr[1054] = "J"
  54. KeyToStr[1051] = "K"
  55. KeyToStr[1044] = "L"
  56. KeyToStr[1071] = "Z"
  57. KeyToStr[1063] = "X"
  58. KeyToStr[1057] = "C"
  59. KeyToStr[1052] = "V"
  60. KeyToStr[1048] = "B"
  61. KeyToStr[1058] = "N"
  62. KeyToStr[1068] = "M"
  63.  
  64. KeyToStr[16777250] = "win"
  65. KeyToStr[16777216] = "esc"
  66. KeyToStr[96] = "`"
  67. KeyToStr[16777217] = "tab"
  68. KeyToStr[16777252] = "caps lock"
  69. KeyToStr[16777248] = "shift"
  70. KeyToStr[16777249] = "ctrl"
  71. KeyToStr[16777251] = "alt"
  72. KeyToStr[32] = "space"
  73. KeyToStr[16777234] = "left" #стрелки
  74. KeyToStr[16777236] = "right"
  75. KeyToStr[16777237] = "down"
  76. KeyToStr[16777235] = "up"
  77. KeyToStr[16777220] = "enter"
  78. KeyToStr[44] = ","
  79. KeyToStr[46] = "."
  80. KeyToStr[47] = "/"
  81. KeyToStr[39] = "\'"
  82. KeyToStr[59] = ";"
  83. KeyToStr[92] = "\\"
  84. KeyToStr[16777219] = "backspace"
  85. KeyToStr[16777223] = "delete"
  86. KeyToStr[93] = "]"
  87. KeyToStr[91] = "["
  88. KeyToStr[61] = "="
  89. KeyToStr[45] = "-"
  90. KeyToStr[48] = "0"
  91. KeyToStr[57] = "9"
  92. KeyToStr[56] = "8"
  93. KeyToStr[55] = "7"
  94. KeyToStr[54] = "6"
  95. KeyToStr[53] = "5"
  96. KeyToStr[52] = "4"
  97. KeyToStr[51] = "3"
  98. KeyToStr[50] = "2"
  99. KeyToStr[49] = "1"
  100. KeyToStr[16777264] = "f1"
  101. KeyToStr[16777265] = "f2"
  102. KeyToStr[16777266] = "f3"
  103. KeyToStr[16777267] = "f4"
  104. KeyToStr[16777217] = "tab"
  105. KeyToStr[16777268] = "f5"
  106. KeyToStr[16777269] = "f6"
  107. KeyToStr[16777270] = "f7"
  108. KeyToStr[16777271] = "f8"
  109. KeyToStr[16777272] = "f9"
  110. KeyToStr[16777273] = "f10"
  111. KeyToStr[16777274] = "f11"
  112. KeyToStr[16777275] = "f12"
  113.  
  114. ########for keyboard########
  115. KeyToStr["LEFT WINDOWS"] = "win"
  116. KeyToStr["ESC"] = "esc"
  117. KeyToStr["`"] = "`"
  118. KeyToStr["CAPS LOCK"] = "caps lock"
  119. KeyToStr["TAB"] = "tab"
  120. KeyToStr["SHIFT"] = "shift"
  121. KeyToStr["CTRL"] = "ctrl"
  122. KeyToStr["ALT"] = "alt"
  123. KeyToStr["SPACE"] = "space"
  124. KeyToStr["LEFT"] = "left" #стрелки
  125. KeyToStr["RIGHT"] = "right"
  126. KeyToStr["DOWN"] = "down"
  127. KeyToStr["UP"] = "up"
  128. KeyToStr["ENTER"] = "enter"
  129. KeyToStr["\'"] = "\'"
  130. KeyToStr["."] = "."
  131. KeyToStr[","] = ","
  132. KeyToStr["'"] = "\'"
  133. KeyToStr["/"] = "/"
  134. KeyToStr[";"] = ";"
  135. KeyToStr["\\"] = "\\"
  136. KeyToStr["BACKSPACE"] = "backspace"
  137. KeyToStr["DELETE"] = "delete"
  138. KeyToStr["]"] = "]"
  139. KeyToStr["["] = "["
  140. KeyToStr["="] = "="
  141. KeyToStr["-"] = "-"
  142. KeyToStr["0"] = "0"
  143. KeyToStr["9"] = "9"
  144. KeyToStr["8"] = "8"
  145. KeyToStr["7"] = "7"
  146. KeyToStr["6"] = "6"
  147. KeyToStr["5"] = "5"
  148. KeyToStr["4"] = "4"
  149. KeyToStr["3"] = "3"
  150. KeyToStr["2"] = "2"
  151. KeyToStr["1"] = "1"
  152. KeyToStr["F1"] = "f1"
  153. KeyToStr["F2"] = "f2"
  154. KeyToStr["F3"] = "f3"
  155. KeyToStr["F4"] = "f4"
  156. KeyToStr["F5"] = "f5"
  157. KeyToStr["F6"] = "f6"
  158. KeyToStr["F7"] = "f7"
  159. KeyToStr["F8"] = "f8"
  160. KeyToStr["F9"] = "f9"
  161. KeyToStr["F10"] = "f10"
  162. KeyToStr["F11"] = "f11"
  163. KeyToStr["F12"] = "f12"
  164.  
  165. KeyToStr["Q"] = "Q"
  166. KeyToStr["W"] = "W"
  167. KeyToStr["R"] = "R"
  168. KeyToStr["E"] = "E"
  169. KeyToStr["T"] = "T"
  170. KeyToStr["Y"] = "Y"
  171. KeyToStr["U"] = "U"
  172. KeyToStr["I"] = "I"
  173. KeyToStr["O"] = "O"
  174. KeyToStr["P"] = "P"
  175. KeyToStr["A"] = "A"
  176. KeyToStr["S"] = "S"
  177. KeyToStr["D"] = "D"
  178. KeyToStr["F"] = "F"
  179. KeyToStr["G"] = "G"
  180. KeyToStr["H"] = "H"
  181. KeyToStr["J"] = "J"
  182. KeyToStr["K"] = "K"
  183. KeyToStr["L"] = "L"
  184. KeyToStr["Z"] = "Z"
  185. KeyToStr["X"] = "X"
  186. KeyToStr["C"] = "C"
  187. KeyToStr["V"] = "V"
  188. KeyToStr["B"] = "B"
  189. KeyToStr["N"] = "N"
  190. KeyToStr["M"] = "M"
  191.  
  192. keymap = {}
  193. for key, value in vars(Qt).items():
  194.     if isinstance(value, Qt.Key):
  195.         keymap[value] = key.partition('_')[2]
  196.  
  197. modmap = {
  198.     Qt.ControlModifier: keymap[Qt.Key_Control],
  199.     Qt.AltModifier: keymap[Qt.Key_Alt],
  200.     Qt.ShiftModifier: keymap[Qt.Key_Shift],
  201.     Qt.MetaModifier: keymap[Qt.Key_Meta],
  202.     Qt.GroupSwitchModifier: keymap[Qt.Key_AltGr],
  203.     Qt.KeypadModifier: keymap[Qt.Key_NumLock],
  204. }
  205.  
  206.  
  207.  
  208. class Example(QMainWindow, Ui_MainWindow):
  209.     def __init__(self):
  210.         super().__init__()
  211.         self.setupUi(self)
  212.         self.mouse_listener = mouse.Listener(on_click=self.on_click_mouse)
  213.         self.mouse_listener.start()
  214.         self.qwindowIsActive = True
  215.         self.hook = None
  216.         self.close_button.clicked.connect(self.on_click_close_button)
  217.         self.minimize_button.clicked.connect(self.on_click_minimize_button)
  218.         QTimer.singleShot(0, self.on_qwindow)
  219.    
  220.     def on_click_minimize_button(self):
  221.         self.showMinimized()
  222.  
  223.     def on_click_close_button(self):
  224.         sys.exit()
  225.  
  226.     def on_click_mouse(self, x, y, button, pressed):
  227.         if pressed:
  228.             if button == button.left:
  229.                 self.left_Mouse.setStyleSheet("color: red;")
  230.             elif button == button.right:
  231.                 self.right_mouse.setStyleSheet("color: red;")
  232.             else:
  233.                 self.middle_mouse.setStyleSheet("background-color: red;")
  234.         else:
  235.             if button == button.left:
  236.                 self.left_Mouse.setStyleSheet("color: black;")
  237.             elif button == button.right:
  238.                 self.right_mouse.setStyleSheet("color: black;")
  239.             else:
  240.                 self.middle_mouse.setStyleSheet("background-color: ;")
  241.     def keyPressEvent(self, event):
  242.         key = event.key()
  243.         name = KeyToStr[key]
  244.        
  245.         self.keys[name].setStyleSheet("color: red;")
  246.                
  247.        
  248.  
  249.     def keyReleaseEvent(self, event):
  250.         key = event.key()
  251.         name = KeyToStr[key]
  252.         self.keys[name].setStyleSheet("color: black;")
  253.  
  254.     def on_qwindow(self):        
  255.         self.qwindow = self.windowHandle()
  256.         self.qwindow.activeChanged.connect(self.handle_activeChanged)
  257.  
  258.     def handle_activeChanged(self):
  259.         if self.qwindow.isActive():
  260.             self.qwindowIsActive = True
  261.         else:
  262.             self.qwindowIsActive = False
  263.         self.setGrabbing()    
  264.        
  265.     def setGrabbing(self):
  266.         if not self.qwindowIsActive:                                
  267.             self.hook = keyboard.hook(self.keyboardEventReceived)      
  268.            
  269.         else:
  270.             if self.hook:
  271.                 keyboard.unhook(self.hook)
  272.        
  273.     def keyboardEventReceived(self, event):
  274.        
  275.         key = event.name
  276.         key = key.upper()
  277.        
  278.         if event.event_type == 'down':
  279.             name = KeyToStr[key]
  280.             self.keys[name].setStyleSheet("color: red; ")
  281.                
  282.         if event.event_type == 'up':
  283.             name = KeyToStr[key]
  284.             self.keys[name].setStyleSheet("color: black; ")
  285.  
  286.     def closeEvent(self, event):
  287.         txt = open("close_info.txt", "w")
  288.         txt.write("Close")
  289.         txt.close()
  290.  
  291.        
  292.        
  293. if __name__ == "__main__":
  294.     import sys
  295.     app = QApplication(sys.argv)
  296.     w = Example()
  297.     w.show()
  298.  
  299.     sys.exit(app.exec_())
  300.  
  301.  
  302.  
  303.  
  304.  
  305.  
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement