tkinter做一个闪动的Label

这篇博客介绍了如何在Python的tkinter库中实现一个闪动的Label提示消息。作者通过定时改变标签的位置来模拟闪动效果,提供了两种方法,其中方法二的闪动效果更佳且非阻塞。如果内容过长,建议使用Message组件,它能自动断行并调整宽高比。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

       想做一个提示消息,做成会闪动的样式,但是tkinter没有提供这样的方法。所以我就自己做了一个标签,通过定时改变标签的位置达到一个简单的闪动效果。

      方法也很简单,方法一和方法二都是每0.1秒改变一次位置。由于方法二的位置不确定性更高,所以方法二的闪动效果会比方法一更加好。同时方法二是不阻塞的,方法一是阻塞的,如果界面有其他布局要响应,方法一要开启一个线程,否则界面会假死,不能响应事件。

     如果要显示的信息太长,Label可能会显示不完整,这个时候就可以使用tkinter的Message代替Label,Message可以会将内容自动断行,在默认情况下,Message组件会按照宽高比150%来进行换行,当然这个值也可以通过aspect参数进行自定义。

from tkinter import *
import time
import random
import os

root = Tk()
root.geometry('600x100')
root.title("闪动Label")

canvas = Canvas(root, width=600, height=100)
canvas.pack()
label = Label(canvas, text='xx提问:有四个数字:1、2、3、4,能组成多少个互不相同且无重复数字的三位数?各是多少? 这道题怎么做啊', fg='green')
label.pack()

# 方法一
def flashing_1():
    '''X轴斜线移动,y轴随机'''
    flag = True
    while True:
        if flag:
            for i in range(0, 10):
                label.place(x=i, y=random.randint(1, 10))
                time.sleep(0.1)
                canvas.update()
   
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值