【问题标题】:Button momentarily changes color when selected tkinter选择 tkinter 时按钮会瞬间改变颜色
【发布时间】:2018-11-12 17:38:51
【问题描述】:
是否有一种最佳做法可以让 tkinter 按钮在被选中时立即改变颜色(以便用户获得按钮被按下的视觉反馈)。
我已阅读在 tkinter GUI 中使用 time.sleep() 不是一个好主意。
当我的按钮被按下时,代码发生得如此之快,以至于即使我有一个button.config() 命令来改变颜色,如果不使用time.sleep(),它也不会发生
有什么建议吗?
【问题讨论】:
标签:
python
python-3.x
tkinter
【解决方案1】:
我想这可能是你想要的:
Button(background=normal_color, foreground=text_color,
activebackground=pressed_color, activeforeground=pressed_text_color)
这会在按下按钮时将按钮从 normal_color 更改为 pressed_color。
这实际上是一个简单的问题,但我也不得不到处寻找。终于通过阅读http://effbot.org/tkinterbook/button.htm找到了这个答案。
【解决方案2】:
点击后可以更改颜色,一段时间后使用after方法将颜色重置回原来的颜色
import tkinter as tk
def reset_color():
bt['fg'] = 'black'
def clickme():
print('clicked')
bt['fg'] = 'red'
root.after(2000, reset_color) # after 2 seconds
root = tk.Tk()
bt = tk.Button(root, text='will color for a while\nafter clicked', command=clickme)
bt.pack()
root.mainloop()