pyqt窗體水印
- 介紹
- 效果
- 代碼
介紹
給窗體加上水印
效果
代碼
import sys
from PyQt5.QtWidgets import QApplication, QMainWindow
from PyQt5.QtGui import QPainter, QColor, QFont,QPen
from PyQt5.QtCore import Qtclass 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 // 10y = j * (height // 6) - height // 10painter.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_())