Как начать мигать мою текстовую метку при нажатии кнопки?

Я попытался создать текстовую метку в tkinter, которая должна начать мигать при нажатии кнопки «1». Для этого я попытался с помощью документации tkinter и другого учебника на Google, но в итоге не смог успешно создать логику, так как я новичок в Python, я нашел немного сложным для обработки объекта события. Вот мой код.

import tkinter as Tk

flash_delay = 500  # msec between colour change
flash_colours = ('white', 'red') # Two colours to swap between

def flashColour(object, colour_index):
    object.config(background = flash_colours[colour_index])
    root.after(flash_delay, flashColour, object, 1 - colour_index)

root = Tk.Tk()
root.geometry("100x100")
root.label = Tk.Text(root, text="i can flash",
                   background = flash_colours[0])
root.label.pack()
#root.txt.insert(Tk.END,"hello")


root.button1=Tk.Button(root,text="1")
root.button1.pack()

root.button.place(x=10,y=40,command = lambda: flashColour(root.label, 0))
root.mainloop()

Всего 1 ответ


place не принимает command качестве аргумента. Вы должны передать его в виджет Button с lambda .

root.button=Tk.Button(root,text="1",command = lambda: flashColour(root.label, 0))
root.button.pack()
#root.button.place(x=10,y=40)  # you should use either `pack` or `place` but not both

Есть идеи?

10000