On 6/13/2018 7:21 AM, Peter Otten wrote:
huey.y.ji...@gmail.com wrote:
I forgot the syntax of making a button flash, and failed to find an example in the web. I use Tkinter, to create a button. Then made it packed, and showed up. Now I am trying to make button b flashing, to make it get better noticed. I checked the docs, and found a method flash() is available, then I tried: b.flash() there was no error message popped out, but there was nothing happened also. I wonder who can give me this help? Thanks!
Quoting http://tcl.tk/man/tcl8.6/TkCmd/button.htm#M16 """ pathName flash Flash the button. This is accomplished by redisplaying the button several times, alternating between the configured activebackground and background colors. At the end of the flash the button is left in the same normal/active state as when the command was invoked. This command is ignored if the button's state is disabled. """ So to see something you have to ensure that the two background colors actually differ. Complete example: import tkinter as tk root = tk.Tk() button = tk.Button(root, text="Hello") button.pack() button["activebackground"] = "red" button["background"] = "silver" root.after(1000, button.flash) root.mainloop()
On Windows, this flashes red about 3 time in about .2 seconds and stops. The following repeat the flashing every second, and shows how to stop an animation.
import tkinter as tk root = tk.Tk() def stop_flash(): print('stop_flash') root.after_cancel(flasher) button = tk.Button(root, text="Hello", command=stop_flash, background='silver', activebackground='red') button.pack() def flash(): global flasher button.flash() flasher = root.after(1000, flash) flasher = root.after(1000, flash) root.mainloop() -- Terry Jan Reedy -- https://mail.python.org/mailman/listinfo/python-list