pyqt窗体水印

pyqt窗体水印

码农世界 2024-05-23 前端 71 次浏览 0个评论

pyqt窗体水印

  • 介绍
  • 效果
  • 代码

    介绍

    给窗体加上水印

    效果

    代码

    import sys
    from PyQt5.QtWidgets import QApplication, QMainWindow
    from PyQt5.QtGui import QPainter, QColor, QFont,QPen
    from PyQt5.QtCore import Qt
    class WatermarkedWindow(QMainWindow):
        def __init__(self):
            super().__init__()
            self.initUI()
        def initUI(self):
            self.setWindowTitle('Watermarked Window')
            self.setGeometry(100, 100, 400, 300)
        def paintEvent(self, event):
            painter = QPainter(self)
            painter.setRenderHint(QPainter.Antialiasing)
            # 设置水印文本和字体
            watermark_text = "WATERMARK"
            font = QFont()
            font.setPointSize(20)
            font.setItalic(True)
            font.setWeight(QFont.Light)
            painter.setFont(font)
            # 设置水印颜色(通常为半透明)
            color = QColor(0, 0, 0, 128)  # RGB(0, 0, 0) with alpha 128 (50% opacity)
            painter.setPen(QPen(color))
            # 绘制水印(可能需要调整位置和角度以使其看起来像水印)
            width, height = self.width(), self.height()
            tilt = 45  # 水印文本的倾斜角度(可选)
            for i in range(5):  # 绘制多个水印以增加效果
                for j in range(5):
                    x = i * (width // 6) - width // 10
                    y = j * (height // 6) - height // 10
                    painter.save()  # 保存当前状态
                    painter.translate(x, y)  # 移动到指定位置
                    painter.rotate(tilt)  # 旋转文本(可选)
                    painter.drawText(0, font.pointSize(), watermark_text)  # 绘制文本
                    painter.restore()  # 恢复之前保存的状态
            # 如果有其他绘制内容,可以在这里添加
    if __name__ == '__main__':
        app = QApplication(sys.argv)
        ex = WatermarkedWindow()
        ex.show()
        sys.exit(app.exec_())
    

转载请注明来自码农世界,本文标题:《pyqt窗体水印》

百度分享代码,如果开启HTTPS请参考李洋个人博客
每一天,每一秒,你所做的决定都会改变你的人生!

发表评论

快捷回复:

评论列表 (暂无评论,71人围观)参与讨论

还没有评论,来说两句吧...

Top