闪烁的Tkinter标签

时间:2014-01-28 23:21:07

标签: python tkinter label

我是python中的初学程序员,最近开始使用tkinter,虽然我遇到了一个我无法解决的问题。

基本上我有两个输入框。

  • Entry1 =消息
  • Entry2 =没有。闪光

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

我需要的是一个for循环,一个标签弹出并闪烁entry1的次数与entry2一样多,是的我知道如何获得输入输入但我不知道如何获得标签要不断闪烁,我已经在循环中尝试了pack_forget.destroy方法作为标签,但不幸的是它没有显示,因为它几乎立即从屏幕上再次清除它。

1 个答案:

答案 0 :(得分:4)

基本思想是创建一个执行闪光(或闪光的一半)的功能,然后使用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()