Кнопка мгновенно меняет цвет при выборе ткинтера - PullRequest
0 голосов
/ 03 июня 2018

Есть ли лучший способ заставить кнопку tkinter мгновенно менять цвет, когда она выбрана (таким образом, пользователь получает визуальный отзыв о том, что кнопка была нажата).

Я прочитал, что это не очень хорошая идеяиспользовать time.sleep() в графическом интерфейсе tkinter.

Когда моя кнопка нажата, код происходит так быстро, что даже когда у меня есть команда button.config() для изменения цвета, это не происходит без использования time.sleep()

Есть предложения?

Ответы [ 2 ]

0 голосов
/ 17 июля 2019

Я думаю, что это может быть то, что вы хотите:

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

Это изменяет кнопку с normal_color на pressed_color при нажатии кнопки.

На самом деле это простой вопрос с простым ответом, но мне тоже приходилось искать повсюду.Наконец-то нашел этот ответ, прочитав http://effbot.org/tkinterbook/button.htm.

0 голосов
/ 03 июня 2018

Вы можете изменить цвет при нажатии, затем использовать метод 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()
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...