屏幕水印-Python应用

import getpass,socket,sys,win32api,time
from PyQt5.QtCore import Qt
from PyQt5.QtGui import QFont, QPainter, QColor
from PyQt5.QtWidgets import QWidget, QApplication

# 将导入的文字进行重复生成,实现全屏覆盖
def get_replicate_text(text):
    i, space, str1, str2 = 0, 70, "", ""
    while (i <= 5):
        str1 = str1 + text + " " * space
        i = i + 1
    str2 = " " * space + str1 + "\n\n\n\n\n\n\n"
    str1 = str1 + "\n\n\n\n\n\n\n"
    str1 = (str1 + str2) * 7
    return str1

# 水印重复文字设置,设置为计算机名
mytext = get_replicate_text(socket.getfqdn(socket.gethostname())+ "   " + time.strftime('%Y%m%d' , time.localtime()) + "   " + getpass.getuser())

# 获取当前分辨率
width = win32api.GetSystemMetrics(0)
height = win32api.GetSystemMetrics(1)

# 窗体部分
class Window(QWidget):
    def __init__(self):
        super().__init__()
        # 鼠标透传属性
        self.setAttribute(Qt.WA_TransparentForMouseEvents);
        # 窗口置顶、无边框窗口、无状态栏
        self.setWindowFlags(Qt.WindowStaysOnTopHint | Qt.FramelessWindowHint | Qt.Tool)
        # 设置禁用,不可互动
        self.setEnabled(False)
        # 设置窗口大小
        self.setGeometry(0, 0, width, height)
        # 设置透明度
        self.setWindowOpacity(0.22)
        # 设置背景透明
        self.setAttribute(Qt.WA_TranslucentBackground)
        # 显示窗口
        self.show()

    # 绘画事件
    def paintEvent(self, QPaintEvent):
        # 实例化绘画工具
        qp = QPainter()
        # 在开始窗口上绘画
        qp.begin(self)
        # 设置笔刷颜色(字体颜色)
        qp.setBrush(QColor(160, 160, 160))
        # 设置字体
        qp.setFont(QFont('Calibri', 15))
        # 设置倾斜角度
        qp.rotate(-45)
        # 绘画文本(因为倾斜了,所以绘画矩形也会跟着倾斜,这里吧长宽都扩大了防止有些地方画不到的情况)
        qp.drawText(-height, 0, width * 2, height * 2, Qt.AlignLeft,mytext)
        # 结束绘画
        qp.end()

# 入口函数
if __name__ == "__main__":
    app = QApplication(sys.argv)
    Window = Window()
    sys.exit(app.exec_())

 

头像

作者:

所有评论 “屏幕水印-Python应用”

Kent进行回复 取消回复

邮箱地址不会被公开。

Demon_运维笔记