Bonjour,

Mon problème consiste à la création d'un dessin qui devrait se mettre à jour toutes les 1.5 secondes.
Mon programme utilise Tkinter avec une classe qui gère le tout. Ne sachant pas où m'orienter pour le dessin,
j'ai utilisé matplotlib dans un premier temps.

Voici le code actuel :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
 
def draw(self):
        fig = plt.figure()
        plt.grid(True)
        axes = plt.gca()
        axes.set_ylabel("pH")
        axes.set_xlabel("Temps")
        temp = [self.mypH - 3 + x/2. for x in range(14)]
        axes.set_yticks(temp)
        axes.set_ylim(self.mypH - 3, self.mypH + 3)
        tabx = [x * 1.5 for x in range(len(self.tab))]
        plt.plot(tabx, self.tab)
        plt.show()
J'ai dans ma classe créé un bouton qui m'appelle cette fonction draw. Pour le moment donc,
je clique et il m'affiche le dessin avec les informations actuelles. Cependant, mon "self.tab" se
met à jour toutes les 1.5 secondes et j'aimerais bien que mon dessin en fasse de même tant qu'il
est lancé. J'ai creusé en essayant un code similaire au suivant :
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
 
def draw(self):
    fig = plt.figure()
    ax = fig.add_subplot(111)
 
    li, = ax.plot([], [])
 
    # draw and show it
    fig.canvas.draw()
    plt.show(block=False)
    while True:
        try:
            li.set_xdata([x * 1.5 for x in range(14)])
            li.set_ydata(self.tab)
 
            fig.canvas.draw()
 
            time.sleep(1.5)
        except KeyboardInterrupt:
             break
Mais ici j'ai le souci que je ne peux plus fermer la fenêtre... Au début je n'avais pas mis le try-except
mais même en rajoutant celui-ci, rien n'y fait. J'aimerais juste cliquer sur la croix et que la fenêtre se
ferme.

J'espère avoir été clair.

Merci de votre aide.