哈喽我是谢金金,这段时间抖音出现很火的使用编程工具制作满屏温馨弹窗到处飞的事件。简短的看了一下效果展示我便有了大致思路,主要使用到了tkinter(python的gui图形化界面制作库)带入循环,以及获取随机的温馨提示文字的字符串即可实现。

        以下是我的复现过程:

一:导入以下库

Tkinter是Python的标准GUI(图形用户界面)库,提供了一种快速创建图形界面应用程序的方法。它基于Tcl/Tk图形库,允许开发者使用Python代码创建和管理窗口、标签、按钮、复选框、文本框、列表框、滚动条、画布、菜单等多种控件和组件。Tkinter支持多种平台,包括Windows、Mac OS X和Linux,无需安装额外的软件或库即可运行。

random库用于生成随机数以及获取列表的随机字符串

二:制作主窗口,用于关闭全部弹窗

使用

warm_short 以及color_list列表储存预备生成子窗口的文字提示以及文字背景值
root = TK.Tk()
生成主窗口,前面我们把tkinter别名为TK,这里的的 TK.Tk()是tkinter的实例化对象

root.title("温馨提示")
使用TK的title()方法定义主窗口的提示文字

root.geometry("220x70+10+10")
使用TK的geometry方法定义主窗口的大小以及生成位置

label1 = TK.Label(root, text="爱你老妈,明天见。", font=('宋体', 16), 
bg=random.choice(color_list), width=20,height=10)
label1.pack()

使用tk的标签控件Label定义标签类型,以及大小,bg使用了random.choice的随机选择特性随机选择color_list列表的颜色值给定背景颜色。random.choice()是Python标准库random模块中的一个函数,用于从给定的序列中随机选择一个元素。

三:代码主函数

在show_message函数中定义了一个全局变量global,使得前面index_message=0值不会改变,便于循环使用函数做铺垫。

这个函数里用到了tkinter的after()方法当过了预定值后就会执行一段代码,after方法可以在指定的时间后执行一段代码,我们在after里放置了主函数,执行完主函数在反复执行主函数,执行以便就会在index_message赋值加一,当我们前面的if index_message>=len(warm_short):判断生成的窗口比warm_short值大也就会return,跳出函数,停止执行。

Toplevel(顶级窗口)组件类似于 Frame 组件,但 Toplevel 组件是一个独立的顶级窗口,这种窗口通常拥有标题栏、边框等部件。

使用Toplevel组件我们可以生成子窗口,独立运行的顶级窗口,子窗口的标题,label等定义与实现方法都与前面提到的主窗口一致,这里不在重复。

 四:效果图

五:完整代码

以下是完整代码奉上,供各位大佬参考:

import tkinter as TK
import random
warm_short = ["今天喝水了吗", "我想你了", "多喝水哦", "期待见面呀", "早点休息呀", "今天开心吗", "加油呀", "别太累啦", "想你啦", "注意保暖", "你很棒呀", "我在呢", "慢慢来吧", "会好的", "吃晚饭了吗", "早安呀", "晚安哟", "天气凉了", "记得添衣", "别熬夜啦", "想抱抱你", "你真好", "有我呢", "别担心", "好好吃饭", "今天也爱你", "想和你说话", "照顾好自己", "你最重要", "明天见呀", "顺利吗今天", "累了歇会儿", "我等你呀", "别委屈自己", "开心点呀", "我陪着你", "出门小心", "今天也很棒", "饿了吗", "别着凉", "想你啦", "一切都会好", "你超厉害", "记得吃水果", "别给自己压力", "见到你真好", "下次一起呀", "今天也辛苦啦", "有你真好", "慢慢来别急", "今天也想你", "喝杯热的吧", "别冻着啦", "想跟你分享", "你笑起来好甜", "今天也顺利", "记得吃早餐", "我在听呢", "别硬扛呀", "有进步啦", "天气真好呀", "想和你散步", "你最懂我", "休息一下吧", "等你消息哦", "今天也加油", "别想太多啦", "我支持你", "想你了呀", "记得带伞", "你真可爱", "慢慢来不急", "今天有开心事吗", "给你鼓励呀", "别累坏了", "见面要抱抱", "你在就好", "吃点甜的吧", "今天也爱你哦", "路上小心呀", "想你想到啦", "别委屈啦", "我懂你的", "今天辛苦了", "记得拉伸哦", "有我陪着呢", "明天会更好", "你很重要呀", "饿了叫我呀", "别着凉啦", "想和你吃饭", "你超棒的", "别给自己添堵", "今天也不错", "等你回来呀", "笑一笑呀", "记得补水哦", "有你真安心", "慢慢走呀", "我一直都在"]
color_list = ["#FFE4C4", "#F5DEB3", "#FFFACD", "#F0E68C", "#98FB98", "#87CEFA", "#87CEEB", "#B0C4DE", "#DDA0DD", "#FFB6C1", "#FF6347", "#FFA07A", "#20B2AA", "#FF69B4", "#BA55D3", "#9370DB", "#6A5ACD", "#483D8B", "#00CED1", "#4682B4", "#5F9EA0", "#6495ED", "#7B68EE", "#00FFFF", "#00FFFF", "#E0FFFF", "#AFEEEE", "#F0FFFF", "#F8F8FF", "#F0F8FF", "#FFF0F5", "#FFFAF0", "#F5F5DC", "#F5F5F5", "#FFFFF0", "#F0FFF0", "#E6E6FA", "#FFF5EE", "#FDF5E6", "#FFEFD5", "#FFDAB9", "#FFA500", "#FFC0CB", "#FF6347", "#FF4500", "#FF8C00", "#FFA500", "#FFD700", "#FFFF00", "#ADFF2F", "#7FFF00", "#7CFC00", "#00FF00", "#32CD32", "#00FA9A", "#9ACD32", "#228B22", "#008000", "#006400", "#90EE90", "#98FB98", "#8FBC8F", "#3CB371", "#2E8B57", "#2F4F4F", "#008080", "#008B8B", "#B8860B", "#DAA520", "#CD853F", "#D2691E", "#8B4513", "#A0522D", "#A52A2A", "#8B0000", "#800000", "#FF0000", "#DC143C", "#DB7093", "#C71585", "#FF1493", "#FF69B4", "#FFB6C1", "#FFC0CB", "#8A2BE2", "#9400D3", "#800080", "#4B0082", "#483D8B", "#6A5ACD", "#7B68EE", "#9370DB", "#87CEFA", "#87CEEB", "#1E90FF", "#6495ED", "#0000CD", "#00008B", "#000080", "#191970"]
root = TK.Tk()
root.title("温馨提示")
root.geometry("220x70+10+10")
label1 = TK.Label(root, text="爱你老妈,明天见。", font=('宋体', 16), bg=random.choice(color_list), width=20,height=10)
label1.pack()
index_message=0
def show_message():
    global index_message
    if index_message>=len(warm_short):
       return
    x=100
    y=720
    windows=TK.Toplevel()
    windows.title("温馨提示")
    windows.geometry(f"220x70+{random.randint(20,1300)}+{random.randint(20,700)}")
    label1=TK.Label(windows,text=random.choice(warm_short),font=('宋体',16),bg=random.choice(color_list),width=20,height=10)
    label1.pack()
    index_message+=1
    root.after(100,show_message)
show_message()
root.mainloop()

Logo

汇聚全球AI编程工具,助力开发者即刻编程。

更多推荐