选择tkinter时,按钮会瞬间改变颜色

时间:2018-06-03 02:12:03

标签: python python-3.x tkinter

是否有一种最佳做法可以让tkinter按钮在选中时暂时改变颜色(这样用户就会获得按下该按钮的视觉反馈)。

我已经读过在tkinter GUI中使用time.sleep()不是一个好主意。

当按下我的按钮时,代码发生得太快,即使我有button.config()命令来改变颜色,也不会在不使用time.sleep()的情况下发生

有什么建议吗?

2 个答案:

答案 0 :(得分:0)

您可以在点击后更改颜色,然后在经过一段时间后使用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()

答案 1 :(得分:0)

我认为这可能是您想要的:

Button(background=normal_color, foreground=text_color,
       activebackground=pressed_color, activeforeground=pressed_text_color)

按下按钮后,此按钮将从normal_color变为pressed_color

这实际上是一个简单的问题,有一个简单的答案,但我也必须四处寻找。最后,通过阅读http://effbot.org/tkinterbook/button.htm找到了这个答案。