PyQt5 窗口置顶
            2019-09-25            python             3594         
                
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条评论                                    
                 
         
              