|
马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
x
附源码,
目前已经实现了,注册热键和输出文字的功能,但是卡在了中止任务这里
我想实现的是按下F1后开启功能,再次按下F1之后则关闭功能,尝试了很多办法,已经注册的热键没办法修改,不知道各路大神有没有解决的办法
在线交流,求大神帮忙给个思路
主程序:
- import os
- from threading import Thread
- from pyqt5_plugins.examplebutton import QtWidgets
- from PyQt5.QtWidgets import QApplication,QMainWindow
- from PyQt5.Qt import QThread
- import sys
- from main_GUI import Ui_Form
- class MyMainWindow(QMainWindow, Ui_Form,QThread):
- def __init__(self, parent=None):
- super(MyMainWindow, self).__init__(parent)
- self.setupUi(self)
- def closeEvent(self, event):
- reply = QtWidgets.QMessageBox.question(self, '关闭', "是否要关闭程序?",QtWidgets.QMessageBox.Yes | QtWidgets.QMessageBox.No,QtWidgets.QMessageBox.No)
- if reply == QtWidgets.QMessageBox.Yes:
- event.accept()
- os._exit(0)
- else:
- event.ignore()
- def start_rw(self):
- from pynput.keyboard import Key, Controller
- from system_hotkey import SystemHotkey
- hk = SystemHotkey()
- if self.checkBox.isChecked() == True:
- print("开启")
- rekeyboard = Controller()
- hk.register(('q',), callback=lambda x: rekeyboard.type(self.lineEdit.text()))
- hk.register(('w',), callback=lambda x: rekeyboard.type(self.lineEdit_2.text()))
- if self.checkBox.isChecked() == False:
- pass
- def start(self):
- thread = Thread(target=self.start_rw)
- thread.start()
- if __name__ == '__main__':
- app = QApplication(sys.argv)
- myWin = MyMainWindow()
- myWin.show()
- sys.exit(app.exec_())
复制代码
PYQT5程序,文件名:main_gui.py
- # -*- coding: utf-8 -*-
- # Form implementation generated from reading ui file 'main_GUI.ui'
- #
- # Created by: PyQt5 UI code generator 5.15.4
- #
- # WARNING: Any manual changes made to this file will be lost when pyuic5 is
- # run again. Do not edit this file unless you know what you are doing.
- from PyQt5 import QtCore, QtGui, QtWidgets
- class Ui_Form(object):
- def setupUi(self, Form):
- Form.setObjectName("Form")
- Form.resize(242, 202)
- self.label = QtWidgets.QLabel(Form)
- self.label.setGeometry(QtCore.QRect(30, 30, 81, 31))
- font = QtGui.QFont()
- font.setFamily("微软雅黑 Light")
- font.setPointSize(16)
- self.label.setFont(font)
- self.label.setMouseTracking(True)
- self.label.setAutoFillBackground(False)
- self.label.setFrameShape(QtWidgets.QFrame.Box)
- self.label.setLineWidth(1)
- self.label.setMidLineWidth(0)
- self.label.setTextFormat(QtCore.Qt.AutoText)
- self.label.setAlignment(QtCore.Qt.AlignCenter)
- self.label.setOpenExternalLinks(False)
- self.label.setObjectName("label")
- self.lineEdit = QtWidgets.QLineEdit(Form)
- self.lineEdit.setGeometry(QtCore.QRect(30, 60, 81, 31))
- font = QtGui.QFont()
- font.setFamily("微软雅黑 Light")
- font.setPointSize(16)
- self.lineEdit.setFont(font)
- self.lineEdit.setObjectName("lineEdit")
- self.lineEdit_2 = QtWidgets.QLineEdit(Form)
- self.lineEdit_2.setGeometry(QtCore.QRect(120, 60, 81, 31))
- font = QtGui.QFont()
- font.setFamily("微软雅黑 Light")
- font.setPointSize(16)
- self.lineEdit_2.setFont(font)
- self.lineEdit_2.setLayoutDirection(QtCore.Qt.LeftToRight)
- self.lineEdit_2.setAlignment(QtCore.Qt.AlignLeading|QtCore.Qt.AlignLeft|QtCore.Qt.AlignVCenter)
- self.lineEdit_2.setCursorMoveStyle(QtCore.Qt.LogicalMoveStyle)
- self.lineEdit_2.setObjectName("lineEdit_2")
- self.label_2 = QtWidgets.QLabel(Form)
- self.label_2.setGeometry(QtCore.QRect(120, 30, 81, 31))
- font = QtGui.QFont()
- font.setFamily("微软雅黑 Light")
- font.setPointSize(16)
- self.label_2.setFont(font)
- self.label_2.setMouseTracking(True)
- self.label_2.setAutoFillBackground(False)
- self.label_2.setFrameShape(QtWidgets.QFrame.Box)
- self.label_2.setLineWidth(1)
- self.label_2.setMidLineWidth(0)
- self.label_2.setTextFormat(QtCore.Qt.AutoText)
- self.label_2.setAlignment(QtCore.Qt.AlignCenter)
- self.label_2.setOpenExternalLinks(False)
- self.label_2.setObjectName("label_2")
- self.checkBox = QtWidgets.QCheckBox(Form)
- self.checkBox.setGeometry(QtCore.QRect(110, 110, 91, 19))
- self.checkBox.setObjectName("checkBox")
- self.retranslateUi(Form)
- self.checkBox.clicked.connect(Form.start)
- QtCore.QMetaObject.connectSlotsByName(Form)
- def retranslateUi(self, Form):
- _translate = QtCore.QCoreApplication.translate
- Form.setWindowTitle(_translate("Form", "Form"))
- self.label.setText(_translate("Form", "Q"))
- self.lineEdit.setText(_translate("Form", "哈哈"))
- self.lineEdit_2.setText(_translate("Form", "你好"))
- self.label_2.setText(_translate("Form", "W"))
- self.checkBox.setText(_translate("Form", "CheckBox"))
复制代码
附上现阶段源码
源码下载
|
|