繁体   English   中英

如何使 Canvas 上的文本闪烁?

[英]How Can I Make Text Blinking On Canvas?

import tkinter as tk
from PIL import ImageTk
flag=True
win=tk.Tk()
def function():
    global flag
    if flag:
        canvas.create_text(134,26,fill="black",font="Times 26 bold",text="Blinking...")
    flag=not(flag)
canvas=tk.Canvas(win)
img=ImageTk.PhotoImage(file=r"images.png")
canvas.create_image(0,0,anchor=tk.NW,image=img)
canvas.pack()
btn=tk.Button(win,text="Click Me To Blink...",command=function)
btn.pack()
win.mainloop()

如何使 Canvas 上的文本闪烁? 我尝试创建一个变量标志并且:

if flag:
     canvas.create_text(134,26,fill="black",font="Times 26 bold",text="Blinking...")
flag=not(flag)

但它没有用

您可以使用.after(...)定期调用function() ,然后在“正常”和“隐藏”之间切换 canvas 文本项(应在function()之外创建)的 state 以模拟闪烁效果:

import tkinter as tk
from PIL import ImageTk

def function(show=False):
    btn.config(state="disabled")
    canvas.itemconfig(text, state="normal" if show else "hidden")
    canvas.after(200, function, not show) # change 200 to other value to adjust the blinking speed

win = tk.Tk()

canvas = tk.Canvas(win)
canvas.pack()

img = ImageTk.PhotoImage(file=r"images.png")
canvas.create_image(0, 0, anchor=tk.NW, image=img)

text = canvas.create_text(134, 26, fill="black", font="Times 26 bold", text="Blinking...")

btn = tk.Button(win, text="Click Me To Blink...", command=function)
btn.pack()

win.mainloop()

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM