Redessiner (rafraîchir) la fenêtre après avoir fait le mainloop() ?
Bonjour, ma question est de savoir comment je peux rafraichir ma fenêtre après avoir fait appel au mainloop(). Chaque fois que je fait un canvas.update() ou bien canvas.une_methode() j'obtient l'érreur suivante: error invalid name ".!canvas"...
Ceci est juste une ébauche de mon code pour illustrer le problème
Code:
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
|
import tkinter as tk
#import gestion_pieces
class Game_graphics_components(object):
def __init__(self):
root = tk.Tk()
root.title("Tetrix Game")
root.geometry("600x800")
root.resizable(False, False)
#The game green canvas
self.canvas = tk.Canvas(root, height="700", width="200", bg="#41B77F")
label_title = tk.Label(root, text="Tetrix By Me", font=("Arial", 15))
label_title.pack(expand=True)
self.canvas.pack()
self.root = root
class Game_matrix(Game_graphics_components):
def init_matrix(self):
def repaint(self):
#J'ai un code ici qui me dessine une grille
self.root.mainloop()
def update_grille(self):
#Jai un code ici qui modifie les valeurs de ma grille (tableau) donc après modification j'aimerai faire
#self.canvas.update()... ou autre mais comme le premier appel de repaint est déja dans le mainloop j'obtient une érreur et le canvas est introuvable! |
En gros mon problème est juste de savoir comment rafraichir ma fenêtre (sans bouton déclancheur), puisque si je fais un after(SECS, update_grille()) juste avant le mainloop() je constate que update_grille() se bloque pendant ce nombre de secondes et s'exécute puis appelle le mainloop alors que je veux que le mainloop() lance d'abord l'interface et ensuite je la rafrachie à ma guise. J'espère que mon problème est bien expliqué..