表白弹窗—python

1. 导入模块

python 复制代码
import tkinter as tk
import random
import threading
import time
  • tkinter:Python的标准GUI库,用于创建图形用户界面。
  • random:用于生成随机数。
  • threading:用于多线程编程,允许程序同时运行多个线程。
  • time:用于控制时间相关的操作,如sleep

2. dow()函数

python 复制代码
def dow():
    window = tk.Tk()
    width=window.winfo_screenwidth()
    height=window.winfo_screenheight()
    a=random.randrange(0,width)
    b=random.randrange(0,height)
    window.title('520快乐')
    window.geometry("200x50"+"+"+str(a)+"+"+str(b))
    tk.Label(window,
        text='我喜欢你!',    # 标签的文字
        bg='Red',     # 背景颜色
        font=('楷体', 15),     # 字体和字体大小
        width=15, height=2  # 标签长宽
        ).pack()    # 固定窗口位置
    window.mainloop()
  • 这个函数用于创建一个弹出窗口。
  • window = tk.Tk():创建一个主窗口对象。
  • window.winfo_screenwidth()window.winfo_screenheight():获取屏幕的宽度和高度。
  • random.randrange(0,width)random.randrange(0,height):生成窗口位置的随机坐标(a, b)
  • window.title('520快乐'):设置窗口标题为"520快乐"。
  • window.geometry("200x50"+"+"+str(a)+"+"+str(b)):设置窗口大小为200x50,并放置在随机位置(a, b)
  • tk.Label:创建一个标签控件,显示文字"我喜欢你!",背景为红色,字体为楷体,大小为15,宽度15,高度2。
  • pack():将标签打包到窗口中。
  • window.mainloop():进入主事件循环,显示窗口。

3. 多线程创建窗口

python 复制代码
threads = []
for i in range(100):#需要的弹框数量
    t = threading.Thread(target=dow)
    threads.append(t)
    time.sleep(0.1)
    threads[i].start()
  • threads = []:创建一个空列表来存储线程对象。
  • for i in range(100):循环100次,创建100个窗口。
  • threading.Thread(target=dow):创建一个线程,目标函数是dow
  • threads.append(t):将线程对象添加到列表中。
  • time.sleep(0.1):每次循环后暂停0.1秒,控制窗口弹出的速度。
  • threads[i].start():启动线程,执行dow函数。

4. 代码功能总结

  • 这段代码会创建100个弹出窗口,每个窗口显示"我喜欢你!"的文字。
  • 窗口的位置是随机的,覆盖整个屏幕。
  • 使用多线程技术,每个窗口在一个独立的线程中运行,避免阻塞主线程。
  • 窗口之间弹出的间隔为0.1秒。

5. 注意事项

  • 这段代码会快速创建大量窗口,可能导致系统资源紧张或界面卡顿。
  • tkinter的主循环mainloop()通常在主线程中运行,多线程中使用tkinter可能会引发一些问题(如线程安全问题)。
  • 如果需要更稳定的多窗口管理,建议使用tkinterToplevel或更高级的GUI框架(如PyQt)。
  • 代码中的520快乐是中文网络用语,"520"谐音"我爱你",常用于表达爱意。

6.完整代码

python 复制代码
import tkinter as tk
import random
import threading
import time
def dow():
    window = tk.Tk()
    width=window.winfo_screenwidth()
    height=window.winfo_screenheight()
    a=random.randrange(0,width)
    b=random.randrange(0,height)
    window.title('520快乐')
    window.geometry("200x50"+"+"+str(a)+"+"+str(b))
    tk.Label(window,
        text='我喜欢你!',    # 标签的文字
        bg='Red',     # 背景颜色
        font=('楷体', 15),     # 字体和字体大小
        width=15, height=2  # 标签长宽
        ).pack()    # 固定窗口位置
    window.mainloop()
 
threads = []
for i in range(100):#需要的弹框数量
    t = threading.Thread(target=dow)
    threads.append(t)
    time.sleep(0.1)
    threads[i].start()
相关推荐
安全系统学习2 小时前
网络安全之RCE简单分析
开发语言·python·算法·安全·web安全
蹦蹦跳跳真可爱5893 小时前
Python----神经网络发(神经网络发展历程)
人工智能·python·深度学习·神经网络·计算机视觉
chao_7894 小时前
标注工具核心代码解析——class AnnotationVie【canvas.py]
开发语言·python·qt5
struggle20255 小时前
tvm开源程序是适用于 CPU、GPU 和专用加速器的开放式深度学习编译器堆栈
人工智能·python·深度学习
仟濹5 小时前
「pandas 与 numpy」数据分析与处理全流程【数据分析全栈攻略:爬虫+处理+可视化+报告】
大数据·python·数据分析·numpy·pandas
测试杂货铺5 小时前
postman接口测试
自动化测试·软件测试·python·测试工具·测试用例·接口测试·postman
四川兔兔5 小时前
pytorch 之 nn 库与调试
人工智能·pytorch·python
終不似少年遊*5 小时前
机器学习方法实现数独矩阵识别器
人工智能·python·opencv·机器学习·计算机视觉·矩阵
程序员的世界你不懂6 小时前
Appium+python自动化(二十一)- Monkey指令操作手机
python·appium·自动化
belldeep6 小时前
python 在基因研究中的应用,博德研究所:基因编辑
python·基因·broad institute·博德研究所·基因编辑