Bonjour,
J ai encore un petit soucis avec un Scrollbar qui ne met pas à jour un tableau de canvas dans un canvas (J'ai repris une idée de Mr Wiztrick sur le forum pour mettre de la couleur dans un tableau sur certaines cellules) mais voilà le scroll bouge bien mais pas le Canvas qui héberge le tableau de canvas. Je joins mon code minimum pour être plus clair.

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
41
42
43
44
45
46
47
48
49
50
import tkinter as tk
from tkinter import *
 
class View(tk.Frame):
    def __init__(self,parent):
        super().__init__(parent)
        self.parent=parent
        self.largeur=1200
        self.hauteur=700
        self.frame=Frame(self.parent,width=self.largeur,height=self.hauteur)
        self.frame.pack(expand=True, fill=BOTH)
        self.canvas=Canvas(self.frame,bg='#FFFFFF',width=self.largeur,height=self.hauteur,scrollregion=(0,0,(self.largeur*2),(self.hauteur*2)))
        self.hbar=Scrollbar(self.frame,orient=HORIZONTAL)
        self.hbar.pack(side=BOTTOM,fill=X)
        self.hbar.config(command=self.canvas.xview)
        self.vbar=Scrollbar(self.frame,orient=VERTICAL)
        self.vbar.pack(side=RIGHT,fill=Y)
        self.vbar.config(command=self.canvas.yview)
        self.canvas.config(width=self.largeur,height=self.hauteur)
        self.canvas.config(scrollregion=self.canvas.bbox('all'),xscrollcommand=self.hbar.set, yscrollcommand=self.vbar.set)
        self.canvas.pack(side=LEFT,expand=True,fill=BOTH)
        self.d = []
 
    def affichage(self):
        a=0
        b=0
        couleur = 'red'
        for i in range(500):
            self.d.append(i)
            c=Canvas(self.canvas,width=100,height=50,bg=couleur)
            c.create_text(20,20,text=self.d[i])
            c.grid(row=a,column=b)
            b+=1
            if couleur=='red' :
                couleur='white'
            else :
                couleur='red'
 
            if b>9:
                b=0
                a+=1
 
 
 
if __name__ == "__main__":
    parent = tk.Tk()
    v=View(parent)
    v.affichage()
    #app = Controller(parent)
    parent.mainloop()
Merci pour vos réflexions et désolé de poser peut être des questions aux réponses évidentes mais je ne maitrise pas Tkinter...
Bien Cordialement.