Bonjour,
le but de ce programme est de créer un bouton qui change de couleur (2) et de label à chaque clic de souris .
Les problèmes rencontrés sont :
le changement de couleur ne s'effectue pas au clic mais lorsque la souris quitte le bouton.
Le label du bouton n'apparait pas.
Je n'arrive pas à passer ma variable "a" en argument de la fonction (event) et je suis obligé de passer par un variable "global"

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
 
import matplotlib.pyplot as plt
from matplotlib.gridspec import GridSpec
from matplotlib.widgets import Button, RadioButtons, Slider, TextBox
 
#parametre de fenetrage#
fen = plt.figure(figsize=(8,5), dpi=100, num='Fenetre')
fen.set_facecolor('white') 
gs = GridSpec(100,100)
plt.subplots_adjust(left=0.05, right=0.95, bottom=0.05, top=0.95)
 
#creation du bouton "couleur" et positionnement dans la fenetre#
bouton1_ax = fen.add_subplot(gs[5:20, 5:20])
bouton1 = Button(bouton1_ax,'')
bouton1.label.set_fontsize(8)
 
#initialisation#
a=1
 
def test (event):
    global a
    #premiere condition: le bouton passe au rouge, le label "Rouge" doit apparaitre dans le bouton et le mot rouge s'imprime#
    if a == 1:
        print ('ROUGE')
        bouton1.color='red'
        bouton1.hovercolor='red'
        bouton1.label ='Rouge'
        a = 2
    #seconde condition: le bouton passe au vert, le label "Vert" doit apparaitre dans le bouton  et le mot vert s'imprime#
    else:
        print ('VERT')
        bouton1.color='green'
        bouton1.hovercolor='green'
        bouton1.label ='Vert'
        a = 1
    return a 
 
bouton1.on_clicked(test)
 
plt.show()
cordialement

CARREZ Jean-François