需要添加依赖

pip install PyQt5

完整代码

import sys
import random
from PyQt5.QtWidgets import QApplication, QWidget, QLabel, QVBoxLayout
from PyQt5.QtCore import QTimer, Qt
from PyQt5.QtGui import QColor, QPalette


messages = [
    "晨曦初染窗纱色,先念睿睿始心安。",
    "晚风携香穿竹院,为睿睿书相思笺。",
    "樱花如雪落肩头,愿与睿睿共春秋。",
    "月光轻洒旧书案,写尽睿睿名字暖。",
    "蝉鸣切切夏夜长,思睿睿兮梦亦香。",
    "寒雪覆径印履痕,盼引睿睿赏冬晨。",
    "雨敲窗棂韵悠悠,默念睿睿解清愁。",
    "晚霞铺红河岸边,诗行皆绕睿睿旋。",
    "晨露沾花娇欲滴,欲赠睿睿表心迹。",
    "星河浩瀚缀苍穹,纸鹤遥飞觅睿睿。",
    "春风拂过麦浪翻,望睿睿来此凭栏。",
    "暮色渐浓灯影柔,温茶待睿睿晚安。",
    "落叶飘飞似浅唱,如闻睿睿笑声扬。",
    "银河横亘夜空中,指星遥赠睿睿瞳。",
    "花香暗度小轩窗,睿睿是我心头光。",
    "冬阳暖透旧藤椅,思睿睿在更惬意。",
    "蛙鸣唤醒一池春,念睿睿名语最真。",
    "夜风轻拂鬓丝柔,月如睿睿暖心头。",
    "晨光吻透玫瑰花,欲插睿睿窗阁下。",
    "灯火阑珊暮色沉,盼睿睿至共晨昏。"

]

# 淡暖色调列表(RGB)
warm_colors = [
    (255, 239, 213),  # 浅橙
    (255, 228, 196),  # 浅米
    (255, 222, 173),  # 浅黄
    (255, 182, 193),  # 浅粉
    (255, 204, 153),  # 浅橙黄
    (255, 250, 205),  # 柠檬黄
    (255, 245, 238),  # 雪白暖色
    (255, 228, 225),  # 薄雾玫瑰
    (255, 218, 185),  # 桃色
    (255, 160, 122),  # 浅珊瑚
    (255, 236, 139),  # 浅金黄
    (255, 215, 180),  # 浅杏色
    (255, 223, 211),  # 浅橙粉
    (255, 240, 245),  # 浅紫粉
    (255, 250, 240),  # 浅米白
    (255, 239, 213),  # 浅橙
    (255, 228, 181),  # 浅黄棕
    (255, 192, 203),  # 粉色
    (255, 228, 225)   # 薄雾玫瑰
]

class Popup(QWidget):
    def __init__(self, message, color):
        super().__init__()
        self.setWindowFlags(Qt.WindowStaysOnTopHint | Qt.Tool)
        self.setFixedSize(900, 200)
        self.setWindowTitle("xxx")
        label = QLabel(message, self)
        label.setStyleSheet("font-size: 50px; font-weight: bold; color: #333; font-family: 微软雅黑;")
        label.setAlignment(Qt.AlignCenter)
        layout = QVBoxLayout()
        layout.addWidget(label, alignment=Qt.AlignmentFlag.AlignCenter)
        self.setLayout(layout)
        palette = QPalette()
        palette.setColor(QPalette.Window, QColor(*color))
        self.setPalette(palette)
        self.setAutoFillBackground(True)

class PopupGenerator:
    def __init__(self):
        self.count = 0
        self.max_count = 50
        self.timer = QTimer()
        self.timer.timeout.connect(self.show_popup)
        self.timer.start(600)

    def show_popup(self):
        if self.count < self.max_count:
            msg = messages[self.count%len(messages)]
            color = warm_colors[self.count%len(warm_colors)]
            popup = Popup(msg, color)
            # 获取屏幕尺寸并限制弹窗位置,确保不会出现在屏幕外
            screen = QApplication.primaryScreen().geometry()
            max_x = screen.width() - popup.width()
            max_y = screen.height() - popup.height()
            x = random.randint(0, max_x)
            y = random.randint(0, max_y)
            popup.move(x, y)
            popup.show()
            # 保持弹窗引用,防止被垃圾回收
            QApplication.instance().activePopups.append(popup)
            self.count += 1
        else:
            self.timer.stop()

if __name__ == "__main__":
    app = QApplication(sys.argv)
    app.activePopups = []
    generator = PopupGenerator()
    sys.exit(app.exec_())

Logo

魔乐社区(Modelers.cn) 是一个中立、公益的人工智能社区,提供人工智能工具、模型、数据的托管、展示与应用协同服务,为人工智能开发及爱好者搭建开放的学习交流平台。社区通过理事会方式运作,由全产业链共同建设、共同运营、共同享有,推动国产AI生态繁荣发展。

更多推荐