【问题标题】: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()
      

      【讨论】:

        猜你喜欢
        • 2017-02-22
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2021-05-29
        • 2021-09-26
        • 2018-05-17
        • 2016-05-18
        相关资源
        最近更新 更多