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 51
| import tkinter as tk
from tkinter import *
from tkinter import ttk
class View(tk.Frame):
def __init__(self,parent):
super().__init__(parent)
self.parent=parent
self.largeur=1200
self.hauteur=700
self.d = []
self.canvas = tk.Canvas(self.parent)
self.frame = ttk.Frame(self.canvas)
self.d = []
self.e = 0
# creation grille et canvas secondaire
self.couleur = 'red'
for i in range(20):
for j in range(20):
self.d.append(self.e)
#self.cc = tk.Canvas(self.frame, width=100, height=50, bg=self.couleur).create_text(20,20,text=self.d[i])
self.cc = tk.Canvas(self.frame, width=100, height=50, bg=self.couleur)
self.cc.grid(row=i, column=j, padx=1, pady=1)
if self.couleur == 'red':
self.couleur = 'white'
else:
self.couleur = 'red'
self.e += 1
self.canvas.create_window(0, 0, anchor='nw', window=self.frame)
# ajout des scrollbars
vbar = ttk.Scrollbar(self.parent, orient='vertical', command=self.canvas.yview)
hbar = ttk.Scrollbar(self.parent, orient='horizontal', command=self.canvas.xview)
self.canvas.configure(xscrollcommand=hbar.set,
yscrollcommand=vbar.set,
scrollregion=self.canvas.bbox('all'))
self.canvas.grid(row=0, column=0, sticky='eswn')
vbar.grid(row=0, column=1, sticky='ns')
hbar.grid(row=1, column=0, sticky='ew')
self.canvas.bind('<Configure>', self.on_resize)
def on_resize(self,event):
self.canvas.configure(scrollregion=self.canvas.bbox('all'))
if __name__ == "__main__":
parent = tk.Tk()
v=View(parent)
#v.affichage()
#app = Controller(parent)
parent.mainloop() |
Partager