Я запускаю анимацию с использованием matplotlib's FuncAnimation
для отображения данных (в прямом эфире) с микропроцессора. Я использую кнопки для отправки команд процессору и хотел бы, чтобы цвет кнопки менялся после нажатия, но я не могу найти что-либо в документации matplotlib.widgets.button
(пока), которая достигает этого.Change matplotlib Цвет кнопки при нажатии
class Command:
def motor(self, event):
SERIAL['Serial'].write(' ')
plt.draw()
write = Command()
bmotor = Button(axmotor, 'Motor', color = '0.85', hovercolor = 'g')
bmotor.on_clicked(write.motor) #Change Button Color Here
Спасибо Джо! Я дам вам попробовать – fergodsake
В этом примере есть одна кнопка. Но что, если есть несколько кнопок, и вы хотите изменить цвет одного нажатого? –
@KurtPeek - во-первых, каждая кнопка подключена к собственному обратному вызову, поэтому вы обычно подключаете разные функции обратного вызова к различным кнопкам, когда вам нужно другое поведение. (Например, в приведенном выше примере используется закрытие, поэтому можно использовать более явные «lambda» или «functools.partial» и т. Д.). Однако, если вам нужно, вы можете сравнить 'event.inaxes' с' button.ax'. Каждый экземпляр 'Button' захватывает целые« оси », поэтому оси, в которых происходит событие, будут соответствовать кнопке. Однако есть некоторые оговорки, если у вас есть перекрывающиеся оси (например, кнопка внутри других осей). –