【Python趣味编程】用 Tkinter 打造“爱心便签墙”:一份来自代码的温柔
【Python趣味编程】用 Tkinter 打造“爱心便签墙”一份来自代码的温柔文章目录【Python趣味编程】用 Tkinter 打造“爱心便签墙”一份来自代码的温柔 前言 核心思路关键点 完整代码 代码解析 (小白必看) 你能怎么玩 注意事项✨ 结语 前言你有没有想过除了写枯燥的算法和爬虫Python 还能用来做什么今天我们来玩点不一样的 ——用 Python 的 GUI 库 Tkinter在屏幕上“贴”出一个满满爱意的便签心形。先上一张最终效果图此处贴你最后一张截图是不是看起来既浪漫又有极客感 核心思路我们利用笛卡尔心形线公式计算出心形轨迹上的每一个坐标点然后在每个坐标点弹出一个独立的窗口便签每个窗口都随机赋予暖心的文字和柔和的色彩最终堆叠出完美的爱心形状。关键点数学公式心形线参数方程。GUI 编程用 Python 内置的tkinter创建大量无边框窗口。堆叠逻辑通过循环和坐标偏移控制窗口的间距与层数。 完整代码以下是经过多轮调优后的终极版本。它轻盈、不卡顿且能画出完美的单圈爱心。importtkinterastkimportmathimportrandomimporttime# 便签文字库TEXTS[保持好心情,别熬夜,多喝水,照顾好自己,开心,加油,微笑面对,你超棒的,顺顺利利,好好吃饭,开心每一天]# 笛卡尔心形线公式defheart_x(t,scale15):return16*math.sin(t)**3*scaledefheart_y(t,scale15):return-(13*math.cos(t)-5*math.cos(2*t)-2*math.cos(3*t)-math.cos(4*t))*scaledefmain():# 获取屏幕尺寸root_checktk.Tk()screen_widthroot_check.winfo_screenwidth()screen_heightroot_check.winfo_screenheight()root_check.destroy()center_xscreen_width//2center_yscreen_height//2# 便签窗口大小win_w,win_h100,80# 创建隐形主窗口mastertk.Tk()master.geometry(1x1-10000-10000)master.title(爱心便签生成器)# 核心循环画一圈爱心 total_steps300# 便签总数max_angle2*math.pi# 画完整一圈foriinrange(total_steps):# 计算当前角度t(i/total_steps)*max_angle# 计算坐标x_rawheart_x(t,scale18)y_rawheart_y(t,scale18)# 加入随机偏移增加自然感offset_xrandom.randint(-8,8)offset_yrandom.randint(-8,8)# 最终屏幕坐标pos_xcenter_xint(x_raw)offset_x pos_ycenter_yint(y_raw)offset_y# 创建新窗口wintk.Toplevel(master)win.geometry(f{win_w}x{win_h}{pos_x}{pos_y})# 保持窗口在最顶层win.attributes(-topmost,True)# 随机颜色和文字bg_colorrandom.choice([#FFFACD,#FFB6C1,#98FB98,#87CEFA,#DDA0DD,#FFD700,#E0FFFF,#FFE4E1])text_contentrandom.choice(TEXTS)# 创建标签显示文字labeltk.Label(win,texttext_content,font(Microsoft YaHei,11,bold),bgbg_color,wraplengthwin_w-15)label.pack(expandTrue,fillboth)# 应用背景色win.configure(bgbg_color)# 刷新界面防止卡死master.update()time.sleep(0.02)# 控制生成速度master.mainloop()if__name____main__:main() 代码解析 (小白必看)心形公式 (heart_x,heart_y)这是数学的浪漫。t是角度从 0 到 2π一圈计算出的(x, y)刚好构成一个心形。tk.Toplevel()这是 Tkinter 中创建“子窗口”的方法。我们用它在主窗口之外弹出成百上千个小便签。win.attributes(-topmost, True)这句代码让每个小窗口都“置顶显示”这样它们就会覆盖在背景之上形成堆叠效果。time.sleep(0.02)非常重要如果没有它几百个窗口会同时弹出瞬间卡死电脑。 你能怎么玩这个程序是 100% 可定制的你可以尝试修改以下参数创造出不同的效果修改TEXTS列表换上你喜欢的歌词、励志语录或者你想对某个人说的话。调整win_w和win_h把便签改大或改小改变心形的整体比例。修改scale参数在heart_x和heart_y的调用里改scale值可以放大或缩小整个爱心。改变总步数total_steps数值越大爱心越密但也会越卡。 注意事项运行环境无需安装任何第三方库只要是安装了 Python 的 Windows 或 Mac 系统即可运行Mac 上窗口边框可能稍有不同。关闭方式由于窗口很多如果想关闭直接关闭任务栏上的 Python 窗口或者直接结束进程即可。性能提示如果电脑较慢建议减少total_steps的值比如改为 200。✨ 结语用代码表达心意是一件很酷的事情。你可以把这个程序发给喜欢的人让他们运行一下就能看到满满一屏的“保持好心情”。如果觉得有趣别忘了点赞收藏也欢迎在评论区分享你运行的截图和改写的文字哦#Python #趣味编程 #爱心代码 #Tkinter #浪漫代码