Bonjour,
j'ai une grille renfermant des rectangles qui contiennent des labels. En voici un exemple simple :
Dans le code ci-dessous, le texte du label ne s'affiche pas. Pourriez-vous me dire pourquoi, svp?
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 import tkinter as tk root = tk.Tk() canvas = tk.Canvas( root, width=100, height=100, bg='white', highlightthickness=0, ) canvas.grid() text_item = canvas.create_text(20, 20, anchor="w", text="Hello world!", fill="white") bbox = canvas.bbox(text_item) rect_item = canvas.create_rectangle(bbox, outline="red", fill="black") canvas.tag_raise(text_item,rect_item) text_item = canvas.create_text(40, 60, text="Hello world!", fill="white") bbox = canvas.bbox(text_item) rect_item = canvas.create_rectangle(bbox, outline="red", fill="black") canvas.tag_raise(text_item,rect_item) root.mainloop()
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 import tkinter as tk DIM_GRILLE = (10, 10) DIM_CASE = 60 DIM_LIGNE = 1 DIM_CANEVAS = ( DIM_GRILLE[0]*DIM_CASE + (DIM_GRILLE[0]+1)*DIM_LIGNE, DIM_GRILLE[1]*DIM_CASE + (DIM_GRILLE[1]+1)*DIM_LIGNE ) fenetre = tk.Tk() can = tk.Canvas( fenetre, width=DIM_CANEVAS[0], height=DIM_CANEVAS[1], bg='red', highlightthickness=0, ) can.grid() items = [] colors = ['white', 'yellow'] y = DIM_LIGNE for ligne in range(DIM_GRILLE[1]) : x = DIM_LIGNE ids = [] colors.reverse() for col in range(DIM_GRILLE[0]) : text_item = can.create_text(x+DIM_CASE/2, y+DIM_CASE/2, text="TEXT", fill="black") bbox = can.bbox(text_item) i = can.create_rectangle(bbox, outline="red", fill=colors[col % 2]) ids.append(i) x += DIM_CASE + DIM_LIGNE items.append(ids) y += DIM_CASE + DIM_LIGNE fenetre.mainloop()
Merci d'avance,
cordialement,
Arsène
Partager