闪烁的Tkinter标签(Flashing Tkinter Labels)

2019-10-19 06:29发布

我在python初学者程序员,最近使用Tkinter的开始,虽然我也碰到过,我解决不了问题。

基本上,我有两个输入框。

  • 条目1 =消息
  • ENTRY2 =无。 闪光

(这只是我所需要的例子。)

所有我需要的是一个for循环标签弹出和闪光灯entry1多次entry2 ,是的,我知道如何让进入输入,但我不知道如何让标签,不断闪烁,我曾尝试pack_forget.destroy方法在一个循环的标签,但遗憾的是它并没有显示,因为它几乎立刻从屏幕上再次将其清除。

Answer 1:

其基本思路是建立在支持(闪存的一半或)闪光灯的功能,然后用after反复调用的函数,只要你想发生闪光。

下面是切换前景色和背景色的例子。 它一直运行,只是因为我想保持的例子短。 您可以轻松地添加你想要一个柜台,或停止按钮,或其他任何东西。 这个带走的事情是具有确实的动画的一帧(在这种情况下,在切换颜色)的功能,并且然后调度本身到一定量的时间之后再次运行的概念。

import Tkinter as tk

class Example(tk.Frame):
    def __init__(self, parent):
        tk.Frame.__init__(self, parent)
        self.label = tk.Label(self, text="Hello, world", 
                              background="black", foreground="white")
        self.label.pack(side="top", fill="both", expand=True)
        self.flash()

    def flash(self):
        bg = self.label.cget("background")
        fg = self.label.cget("foreground")
        self.label.configure(background=fg, foreground=bg)
        self.after(250, self.flash)

if __name__ == "__main__":
    root = tk.Tk()
    Example(root).pack(fill="both", expand=True)
    root.mainloop()


文章来源: Flashing Tkinter Labels