開發過程
一、準備工作
首先,確保你的電腦上已經安裝了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("程序已停止")
本文章為轉載內容,我們尊重原作者對文章享有的著作權。如有內容錯誤或侵權問題,歡迎原作者聯繫我們進行內容更正或刪除文章。