開發過程

一、準備工作

首先,確保你的電腦上已經安裝了Python環境。我們需要安裝Tkinter是Python標準庫中的一個GUI(Graphical User Interface,圖形用户界 面)工具包,其目的是為Python開發者提供快捷創建GUI應用程序的方式。

二、編寫代碼

接下來,我們將通過編寫一個簡單的Python腳本來實現滿屏無限彈窗的效果。以下是一個基本的示例代碼:

import tkinter as tk
import random as ra
import threading as td
import time as ti
import sys

# 定義愛心文字列表,增加多樣性
love_texts = [
    '我喜歡你', '❤️', '喜歡你', 'love you', 
    '想你了', '❤️❤️❤️', '永遠愛你', '你最可愛',
    '心動瞬間', '滿屏愛意', '❤️心動', '超喜歡你',
    '你是我的唯一', '我愛你', '❤️永恆', '我想和你在一起',
    '遇見你真好', '❤️心之所向', '每天想你', '你最特別',
    '一生有你', '❤️甜甜蜜蜜', '喜歡你的一切', '只喜歡你',
    '心跳加速', '❤️浪漫時光', '我願意', '有你真好',
    '滿眼都是你', '❤️不離不棄', '深情不及久伴', '愛你到永遠',
    '你偷走了我的心', '❤️命中註定', '思念成海', '執子之手',
    '與子偕老', '❤️歲月靜好', '心只為你動', '專屬告白',
    'love u forever', '❤️一心一意', '愛的告白', '非你不可'
]

# 定義顏色列表 - 更明豔、簡單、豐富的顏色選擇
colors = [
    '#F8C8DC',  # 柔和粉色
    '#F5A9CB',  # 淺粉色
    '#E9967A',  # 柔和珊瑚色
    '#F0E68C',  # 卡其色
    '#98FB98',  # 淺綠色
    '#87CEEB',  # 天藍色
    '#DDA0DD',  #  plum
    '#FFDAB9',  # 桃子色
    '#B0E0E6',  # 淡鋼藍
    '#D8BFD8',  # 淡紫色
    '#FFE4B5',  # 新羅馬金色
    '#E6E6FA',  # 淡紫色
    '#FFEBCD',  # 米色
    '#F5DEB3',  # 小麥色
    '#98D8C8',  # 淡青色
    '#F9CB9C',  # 淺橙色
    '#C9A0DC',  # 淺紫色
    '#B5EAD7',  # 淡綠色
    '#C7CEEA',  # 淡藍色
    '#FCE1E4'   # 超淺粉色
]

# 定義字體列表
fonts = [
    ("Comic Sans MS", 15),
    ("Arial", 16),
    ("SimHei", 14),
    ("微軟雅黑", 15),
    ("幼圓", 16)
]

def create_popup():
    """創建單個彈窗窗口"""
    try:
        # 創建Tkinter窗口
        root = tk.Tk()
        
        # 隨機窗口大小
        width = ra.randint(100, 250)
        height = ra.randint(50, 100)
        
        # 獲取屏幕大小
        screenwidth = root.winfo_screenwidth()
        screenheight = root.winfo_screenheight()
        
        # 隨機位置
        x = ra.randint(0, screenwidth - width)
        y = ra.randint(0, screenheight - height)
        
        # 設置窗口標題和大小位置
        root.title(ra.choice(['❤', '💖', '💕', '💓']))
        root.geometry(f"{width}x{height}+{x}+{y}")
        
        # 設置窗口透明度(可選)
        root.attributes('-alpha', ra.uniform(0.8, 1.0))
        
        # 隨機選擇背景色、文字顏色、文字內容和字體
        bg_color = ra.choice(colors)
        fg_color = 'black'  # 文字顏色固定為黑色
        text = ra.choice(love_texts)
        font = ra.choice(fonts)
        
        # 創建標籤
        label = tk.Label(
            root, 
            text=text, 
            fg=fg_color, 
            bg=bg_color, 
            font=font,
            width=width//10,
            height=height//20
        )
        label.pack(fill=tk.BOTH, expand=True)
        
        # 設置窗口置頂
        root.attributes('-topmost', True)
        
        # 窗口點擊關閉
        root.protocol("WM_DELETE_WINDOW", lambda: root.destroy())
        
        # 移除自動關閉功能,讓彈窗保持在屏幕上
        
        # 啓動窗口主循環
        root.mainloop()
    except Exception as e:
        # 捕獲異常,防止單個窗口出錯影響整體程序
        pass

def popup_loop():
    """無限創建彈窗的循環"""
    try:
        while True:
            # 創建線程來顯示彈窗
            thread = td.Thread(target=create_popup)
            thread.daemon = True  # 設置為守護線程,主線程結束時自動結束
            thread.start()
            
            # 設置固定延遲,讓彈窗堆積效果更明顯
            ti.sleep(0.05)  # 更快的彈窗創建速度
    except KeyboardInterrupt:
        # 處理Ctrl+C中斷
        print("程序已停止")
        sys.exit(0)

if __name__ == "__main__":
    try:
        print("愛心彈窗堆積程序已啓動!按Ctrl+C停止")
        print("提示:彈窗將持續堆積在屏幕上,數量過多可能影響系統性能")
        popup_loop()
    except KeyboardInterrupt:
        print("程序已停止")