1
私は3つの白いボタン[A、B、C]を持っています。これらのボタンのいずれかをクリックすると、すぐに緑色に変わります。連続して複数のボタンをクリックすると、最後にクリックされたものだけが緑色に変わり、他のボタンは元の白い状態に戻るはずです。matplotlibの複数のボタンの色を同時に制御します
私はこのページを読んだが、役に立たなかった。ここに私が書いたコードがあります。現時点では、ボタンは緑色になっていません。私はMatplotlib 2.0を使用しています。
from matplotlib.widgets import Button
import matplotlib.pyplot as plt
fig, ax = plt.subplots()
button_axcut={}
button={}
button_axcut['A'] = plt.axes([0.25,0.5, 0.1, 0.1])
button['A'] = Button(button_axcut['A'] ,'A', color='white')
button_axcut['B'] = plt.axes([0.45,0.5, 0.1, 0.1])
button['B'] = Button(button_axcut['B'] ,'B', color='white')
button_axcut['C'] = plt.axes([0.65,0.5, 0.1, 0.1])
button['C'] = Button(button_axcut['C'],'C', color='white')
def A_clicked(event):
print('A')
button['A'].ax.set_facecolor('green')
button['B'].ax.set_facecolor('white')
button['C'].ax.set_facecolor('white')
button['A'].ax.figure.canvas.draw()
button['B'].ax.figure.canvas.draw()
button['C'].ax.figure.canvas.draw()
def B_clicked(event):
print('B')
button['A'].ax.set_facecolor('white')
button['B'].ax.set_facecolor('green')
button['C'].ax.set_facecolor('white')
button['A'].ax.figure.canvas.draw()
button['B'].ax.figure.canvas.draw()
button['C'].ax.figure.canvas.draw()
def C_clicked(event):
print('C')
button['A'].ax.set_facecolor('white')
button['B'].ax.set_facecolor('white')
button['C'].ax.set_facecolor('green')
button['A'].ax.figure.canvas.draw()
button['B'].ax.figure.canvas.draw()
button['C'].ax.figure.canvas.draw()
button['A'].on_clicked(A_clicked)
button['B'].on_clicked(B_clicked)
button['C'].on_clicked(C_clicked)
iは(b)のif文の下にプリントを追加しましたボタンが正常に動作していることを示していますが、色はまだ緑色に変化していません。私のコードを凝縮してくれてありがとう。 – themachinist
質問を更新して、コードをどのように実行するかの詳細な説明を追加できますか?また、どのシステム?別のバックエンドを使用できますか? – ImportanceOfBeingErnest