PyQt5 窗口置顶
2019-09-25 python 2635
self.setWindowFlags(Qt.WindowStaysOnTopHint)
附:获取坐标
listen.py
from pynput.mouse import Listener as MouseListener from pynput.keyboard import Listener as KeyboardListener class Listen: def __init__(self): pass def mouseMove(self, x,y): self.triggerMove.emit("{},{}".format(x,y)) def mouseClick(self, x, y, button, pressed): self.triggerClick.emit("{},{}".format(x, y)) def mouseListen(self): with MouseListener(on_move=self.mouseMove, on_click=self.mouseClick) as listerner: listerner.join() if __name__ == "__main__": rec = Listen() # rec.mouseListen() rec.mouseClickPos()
mpos.py
import sys from PyQt5.QtWidgets import QWidget, QMainWindow, QApplication, QDesktopWidget, QPushButton, QVBoxLayout, QHBoxLayout, \ QLineEdit from PyQt5.QtCore import Qt, QThread, pyqtSignal, QObject from lib.Listen import Listen class CombWidget(QObject): def __init__(self): super().__init__() def combHBox(self, lst: list): h = QHBoxLayout() for x, y in lst: h.addWidget(x, y) wg = QWidget() wg.setLayout(h) return wg def combVBox(self, lst: list): h = QVBoxLayout() for x, y in lst: h.addWidget(x, y) wg = QWidget() wg.setLayout(h) return wg class MouseThread(QThread): clickPos = pyqtSignal(str) movePos = pyqtSignal(str) def run(self): print("mouse thread init") self.mouseListener.triggerClick = self.clickPos self.mouseListener.triggerMove = self.movePos self.mouseListener.mouseListen() class Mpos(QMainWindow): def __init__(self): super().__init__() self.initUI() def initUI(self): self.setWindowFlags(Qt.WindowStaysOnTopHint) comb = CombWidget() v = QVBoxLayout() self.pos_btn = QPushButton("获取坐标") self.pos_btn.clicked.connect(self.getPos) self.pos_txt = QLineEdit("") self.pos_txt.setReadOnly(True) self.movepos_txt = QLineEdit("") self.movepos_txt.setReadOnly(True) v.addWidget(comb.combHBox([(self.pos_btn, 2), (self.pos_txt, 2), (self.movepos_txt, 2)]), 2) # v.addWidget(QTextEdit(""), 22) wg = QWidget() wg.setLayout(v) self.setCentralWidget(wg) self.mouseThread = MouseThread() self.mouseThread.clickPos.connect(self.clickPos) self.mouseThread.movePos.connect(self.movePos) self.mouseThread.mouseListener = self.mouseListener = Listen() self.setGeometry(300, 300, 300, 100) self.setWindowTitle("坐标/点击/移动") self.center() def getPos(self): self.mouseThread.start() def clickPos(self,pos): self.pos_txt.setText(pos) def movePos(self,pos): self.movepos_txt.setText(pos) def center(self): qr = self.frameGeometry() cp = QDesktopWidget().availableGeometry().center() qr.moveCenter(cp) self.move(qr.topLeft()) if __name__ == "__main__": app = QApplication(sys.argv) mpos = Mpos() mpos.show() sys.exit(app.exec_())
很赞哦! (0)
相关文章
文章评论
-
-
-
0条评论