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

Reply via email to