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()
如何使画布上的文本闪烁? 我尝试创建一个变量 flag 并且:
if flag:
canvas.create_text(134,26,fill="black",font="Times 26 bold",text="Blinking...")
flag=not(flag)
但是没有用
答案 0 :(得分:1)
您可以使用 .after(...)
定期调用 function()
,然后在“正常”和“隐藏”之间切换画布文本项(应在 function()
之外创建)的状态以模拟闪烁效果:
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()