撸了个 PyQt 的小脚本

不想让系统休眠,又不想让别人看到在做什么,所以用 PyQt 写了个页面,顺便练练手,好久没写 Qt 了。顺便说句,PyQt 成为最主流的 Python UI 工具,真的是很让人意外。

程序很简单,页面一直保持在最前面...点左上角红点点退出...啥都不显示就只有你知道这里有个按键了 :) ...如果要更复杂功能,可以继续扩充。

为什么不屏蔽系统按键?因为我没管理员权限。这可能是没有管理员权限的情况下,最好的方案了。

上代码。

# -*- coding: utf-8 -*-
"""
Spyder Editor

This is a temporary script file.
"""

import sys
from PyQt5.QtWidgets import QApplication, QMainWindow, QLabel, QPushButton, QLineEdit
from PyQt5 import QtCore,QtGui
from PyQt5.QtCore import QTimer

class Example(QMainWindow):
    def __init__(self):
        super().__init__()
        self.initUI()
    
    def initUI(self):
        self.setWindowTitle('test')
        self.setWindowFlags(QtCore.Qt.FramelessWindowHint|QtCore.Qt.WindowStaysOnTopHint|QtCore.Qt.Window)

        font = QtGui.QFont()
        font.setPointSize(24)

        self.timer = QTimer(self)
        self.timer.timeout.connect(self.goToTop)
        self.timer.start(1000)

        self.lb= QLabel("Do not move, test is running...", self)
        self.lb.setFont(font)
        self.lb.setGeometry(QtCore.QRect(70, 440, 2000, 50))

        self.lb2= QLabel("Call me: xxx-xxx-xxx", self)
        self.lb2.setFont(font)
        self.lb2.setGeometry(QtCore.QRect(70, 540, 2000, 50))
        
        self.btn = QPushButton("", self)
        self.btn.clicked.connect(self.clicks)
        self.btn.setGeometry(QtCore.QRect(0, 0, 50, 50))
        self.btn.setFocusPolicy(QtCore.Qt.NoFocus)

        self.installEventFilter( self)

        self.setStyleSheet("border:none;color:red;background-color:black;")
        self.showFullScreen()
        self.activateWindow()

    def goToTop(self):
        self.setWindowState(self.windowState() & ~QtCore.Qt.WindowMinimized | QtCore.Qt.WindowActive)
        self.setWindowFlags(QtCore.Qt.FramelessWindowHint|QtCore.Qt.WindowStaysOnTopHint|QtCore.Qt.Window)

    def clicks(self):
        QApplication.instance().quit()

    def closeEvent(self, event):
        event.ignore()

    def keyPressEvent(self, event):
        if event.key() != QtCore.Qt.Key_Escape:
            super().keyPressEvent(event)

if __name__ == '__main__':
    try:
        app
    except:
        app = QApplication(sys.argv)
    ex = Example()
    sys.exit(app.exec_())

 

posted @ 2021-09-27 11:44  Biiigfish  阅读(115)  评论(0编辑  收藏  举报