抖音熱榜Python祝福提示框小項目教程(附詳細代碼)
1.前言
在生日等特殊節(jié)日,人們常希望用新穎、有儀式感的方式傳遞祝福。傳統(tǒng)的文字或圖片祝福形式較為單一,難以營造熱鬧、溫馨的氛圍。
本程序基于 Python 的 tkinter 庫開發(fā),通過多線程技術實現大量生日祝福彈窗的隨機彈出。每個彈窗擁有隨機的祝福語、背景色和字體色,能在屏幕上均勻分布,可幫助用戶為媽媽等親友打造極具驚喜感的生日祝福場景,操作簡單且可靈活自定義內容。
2.分段闡述代碼原理
以下是每一行代碼的詳細解釋:
2.1導入模塊部分
import tkinter as tk # 導入tkinter庫,用于創(chuàng)建GUI窗口,并用別名tk簡化調用 import random # 導入random庫,用于生成隨機數、隨機選擇元素 import threading # 導入threading庫,用于創(chuàng)建多線程(實現同時彈出多個窗口) import time # 導入time庫,用于控制程序休眠(控制彈窗間隔時間)
2.2 定義數據列表部分
# 定義溫馨提示語列表(存儲所有生日祝福文案)
tips = [
"媽媽,生日快樂!",
"祝您身體健康健康,笑口常開!",
# ... 省略中間14條祝福語 ...
"媽媽,生日快樂!每天都要笑得這么甜哦~"
]
# 定義背景顏色列表(存儲柔和的背景色,用十六進制顏色碼表示)
bg_colors = [
'#FFCCD5', '#C5E3ED', '#D4F1F4', '#E9E4F0',
# ... 省略中間8種顏色 ...
'#FFEAEA', '#F0F7FF'
]
# 定義字體顏色列表(存儲與背景色對比明顯的字體顏色)
font_colors = [
'#D81F26', '#00529B', '#137333', '#5C2D91',
# ... 省略中間4種顏色 ...
'#4A5568'
]
2.3 核心功能函數:顯示祝福彈窗
def show_warm_tip(): # 定義函數,用于創(chuàng)建并顯示一個祝福彈窗
# 隨機選擇提示語、背景色和字體顏色(從上面定義的列表中隨機挑選)
tip = random.choice(tips)
bg_color = random.choice(bg_colors)
font_color = random.choice(font_colors)
# 創(chuàng)建臨時窗口獲取屏幕信息(因為獲取屏幕尺寸需要一個tkinter實例)
temp = tk.Tk() # 創(chuàng)建臨時主窗口
screen_width = temp.winfo_screenwidth() # 獲取屏幕寬度(像素)
screen_height = temp.winfo_screenheight() # 獲取屏幕高度(像素)
temp.destroy() # 關閉臨時窗口(用完即棄)
# 固定窗口大小為300x150像素
win_width = 300
win_height = 150
# 計算窗口隨機位置(確保窗口不超出屏幕范圍)
max_x = screen_width - win_width # 窗口x坐標最大值(避免右側超出屏幕)
max_y = screen_height - win_height # 窗口y坐標最大值(避免底部超出屏幕)
x = random.randint(0, max_x) # 隨機生成x坐標(0到max_x之間)
y = random.randint(0, max_y) # 隨機生成y坐標(0到max_y之間)
# 創(chuàng)建彈窗窗口(Toplevel表示子窗口,可獨立于主窗口存在)
window = tk.Toplevel()
window.title("生日祝福") # 設置窗口標題
# 設置窗口大小和位置:"寬x高+x坐標+y坐標"
window.geometry(f"{win_width}x{win_height}+{x}+{y}")
window.attributes("-topmost", True) # 窗口置頂(始終顯示在其他窗口上方)
window.configure(bg=bg_color) # 設置窗口背景色
# 在窗口中添加祝福文字標簽
tk.Label(
window, # 父窗口(文字顯示在這個彈窗里)
text=tip, # 顯示的文字內容(隨機選的祝福語)
bg=bg_color, # 標簽背景色(與窗口背景一致)
fg=font_color, # 文字顏色(隨機選的字體色)
font=("Microsoft YaHei UI", 14, "bold"), # 字體設置:微軟雅黑、14號、加粗
wraplength=win_width - 40, # 文字換行寬度(距離窗口兩側各20像素)
padx=20, # 標簽左右內邊距(20像素)
pady=20 # 標簽上下內邊距(20像素)
).pack(expand=True) # 放置標簽,并讓其在窗口中居中擴展
# 添加關閉按鈕
tk.Button(
window, # 父窗口(按鈕顯示在這個彈窗里)
text="謝謝", # 按鈕文字
command=window.destroy, # 點擊按鈕觸發(fā)的事件:關閉當前窗口
font=("Microsoft YaHei UI", 10), # 按鈕文字字體:微軟雅黑、10號
bg="#FFD700", # 按鈕背景色(金色)
fg="#333333", # 按鈕文字色(深灰色)
padx=10, # 按鈕左右內邊距(10像素)
pady=2 # 按鈕上下內邊距(2像素)
).pack(pady=10) # 放置按鈕,底部外邊距10像素
window.mainloop() # 啟動窗口的事件循環(huán)(讓窗口保持顯示并響應操作)
2.4 主程序執(zhí)行部分
if __name__ == "__main__": # 當程序直接運行時執(zhí)行以下代碼(而非被導入時)
total_windows = 50000 # 要彈出的彈窗總數(5萬個)
for i in range(total_windows): # 循環(huán)生成指定數量的彈窗
# 創(chuàng)建線程:每個彈窗由單獨的線程執(zhí)行(避免單個窗口阻塞其他窗口)
t = threading.Thread(target=show_warm_tip) # 線程目標函數是show_warm_tip
t.daemon = True # 設置為守護線程:主線程結束后,子線程自動退出
t.start() # 啟動線程(執(zhí)行彈窗函數)
# 控制彈窗間隔:隨機休眠0.005到0.010秒(避免所有窗口同時彈出)
time.sleep(random.uniform(0.005, 0.010))
2.5 程序整體功能
該程序會在屏幕上隨機位置持續(xù)彈出大量生日祝福窗口,每個窗口有隨機的祝福語、背景色和字體色,窗口大小固定,帶有"謝謝"關閉按鈕,通過多線程實現快速批量彈出,營造熱鬧的祝福氛圍。
3. 代碼示例
import tkinter as tk
import random
import threading
import time
# 定義溫馨提示語列表
tips = [
"媽媽,生日快樂!",
"祝您身體健康健康,笑口常開!",
"愿您歲歲有今朝,年年都精彩!",
"生日快樂呀,每天都要開開心心!",
"祝您福如東海,壽比南山!",
"愿美好常伴您左右,生日快樂!",
"祝您生日愉悅,萬事順遂!",
"媽媽,生日快樂,青春永駐!",
"媽媽,生日快樂!身體健康,萬事如意!",
"祝 媽媽 福如東海,壽比南山!",
"愿 媽媽 每天都開開心心,笑容常在!",
"生日快樂!希望您每天都像今天一樣幸福!",
"祝 媽媽,青春永駐,健康平安!",
"媽媽,生日快樂!愿所有美好都圍繞著您~",
"生日快樂呀!祝您年年有今日,歲歲有今朝!",
"愿 媽媽 的生活像花兒一樣燦爛,生日快樂!",
"祝 媽媽,生日快樂,家庭幸福,萬事順意!",
"媽媽,生日快樂!每天都要笑得這么甜哦~"
]
# 定義背景顏色列表(更多柔和色彩選擇)
bg_colors = [
'#FFCCD5', '#C5E3ED', '#D4F1F4', '#E9E4F0',
'#FFF8E6', '#FFE8D6', '#F1ECC3', '#D6EFD8',
'#FFE6E6', '#E8F4F8', '#FFF0F3', '#F5F3FF',
'#FFF5E6', '#E6F7F0', '#FFEAEA', '#F0F7FF'
]
# 定義字體顏色列表(與背景色形成良好對比)
font_colors = [
'#D81F26', '#00529B', '#137333', '#5C2D91',
'#C8553D', '#E67E22', '#718096', '#4A5568'
]
def show_warm_tip():
# 隨機選擇提示語、背景色和字體顏色
tip = random.choice(tips)
bg_color = random.choice(bg_colors)
font_color = random.choice(font_colors)
# 創(chuàng)建臨時窗口獲取屏幕信息
temp = tk.Tk()
screen_width = temp.winfo_screenwidth()
screen_height = temp.winfo_screenheight()
temp.destroy()
# 需求一:固定窗口大?。ńy(tǒng)一為300x150)
win_width = 300
win_height = 150
# 需求二:全屏均勻隨機分布算法
# 1. 確保窗口不會超出屏幕范圍
max_x = screen_width - win_width
max_y = screen_height - win_height
# 2. 完全隨機分布,覆蓋整個屏幕
x = random.randint(0, max_x)
y = random.randint(0, max_y)
# 創(chuàng)建彈窗
window = tk.Toplevel()
window.title("生日祝福")
window.geometry(f"{win_width}x{win_height}+{x}+{y}")
window.attributes("-topmost", True) # 窗口置頂
window.configure(bg=bg_color)
# 需求三:美觀字體設置
# 使用更優(yōu)雅的字體和合適的大小,添加加粗效果
tk.Label(
window,
text=tip,
bg=bg_color,
fg=font_color, # 字體顏色
font=("Microsoft YaHei UI", 14, "bold"), # 美觀字體設置
wraplength=win_width - 40, # 自動換行
padx=20,
pady=20
).pack(expand=True)
# 添加關閉按鈕
tk.Button(
window,
text="謝謝",
command=window.destroy,
font=("Microsoft YaHei UI", 10),
bg="#FFD700",
fg="#333333",
padx=10,
pady=2
).pack(pady=10)
window.mainloop()
if __name__ == "__main__":
# 控制彈窗數量和彈出間隔
total_windows = 50000 # 彈窗總數
for i in range(total_windows):
t = threading.Thread(target=show_warm_tip)
t.daemon = True # 主線程結束后自動退出
t.start()
# 隨機間隔時間,避免過于規(guī)律
time.sleep(random.uniform(0.005, 0.010))
注意:可以通過自己想要的顏色話語去修改代碼
4. 輸出結果

注意事項:需要點擊程序結束這些小窗口才會退出,否則只能在任務管理器終止Pycharm,最次的方法也是關機重啟
5. 總結
到此這篇關于抖音熱榜Python祝福提示框小項目的文章就介紹到這了,更多相關Python祝福提示框內容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!
相關文章
Python multiprocess pool模塊報錯pickling error問題解決方法分析
這篇文章主要介紹了Python multiprocess pool模塊報錯pickling error問題解決方法,結合實例形式分析了multiprocess pool模塊報錯pickling error的原因與解決方法,需要的朋友可以參考下2019-03-03
用Python Flask創(chuàng)建簡潔高效的URL短鏈接服務
本文介紹了如何使用Python Flask框架創(chuàng)建URL短鏈接服務。通過詳細的步驟和代碼示例,讀者將學會如何搭建一個高效的URL縮短服務,包括生成短鏈接、重定向、還原長鏈接等功能。本文還介紹了如何使用Redis數據庫實現短鏈接的存儲和管理和如何優(yōu)化短鏈接的訪問速度和可靠性2023-04-04

