Bonjour,
Y a t-il une méthode pour récupérer les valeurs de "width" et de "height" de can1?
Bien à vous.Code:
1
2
3
4
5 from tkinter import * fen1 = Tk() can1 = Canvas(fen1, bg='white', width=500, height=300) can1.pack() fen1.mainloop()
Version imprimable
Bonjour,
Y a t-il une méthode pour récupérer les valeurs de "width" et de "height" de can1?
Bien à vous.Code:
1
2
3
4
5 from tkinter import * fen1 = Tk() can1 = Canvas(fen1, bg='white', width=500, height=300) can1.pack() fen1.mainloop()
Salut,
Ceci dit, cela ne sert à pas grand chose puisque ces paramètres sont donnés par l'appelant pour initialiser le canvas.Code:
1
2
3
4
5 # récup des "options" dans un dict cfg = can1.configure() valeurs de height, width print (cfg['height'][4]) print (cfg['width'][4])
Suivant les options (.pack(fill, expand)) le canvas pourra être "étendu" ou "réduit" sans que cette valeur initiale ne soit mise à jour.
Le "vrai" height sera retourné par can1.winfo_height().
Bon courage,
- W
Ouah, super!!!
Votre réponse est très claire et complète.
Avec tous mes remerciements.
De plus, tu peux te servir de ton Canevas comme un dictionnaire et donc...
Code:
1
2
3
4
5
6
7
8
9 from tkinter import * fen1 = Tk() can1 = Canvas(fen1, bg='white', width=500, height=300) print(can1["height"], can1["width"], can1["bg"]) #can1["bg"] = "black" #... can1.pack() fen1.mainloop()
Bonjour,
+1 pour les winfo
@+Code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21 from tkinter import * def Print(): labininstance['text'] = "Valeur pour l'instance:: width=%s, height=%s" % (can1["width"], can1["height"]) labreel['text'] = "Valeur reelle: width=%d, height=%d" % (can1.winfo_width(), can1.winfo_height()) def OnClic(e): labverif['text'] = "Vérifier par clic: width=%d, height=%d" % (e.x, e.y) fen1 = Tk() can1 = Canvas(fen1, bg='white') can1.pack(fill='both', expand=1) labininstance = Label(fen1, text="Valeur pour l'instance:") labininstance.pack(padx=5, pady=5) labreel = Label(fen1, text='Valeur reelle:') labreel.pack(padx=5, pady=5) Button(fen1, text='test', command=Print).pack(padx=5, pady=5) labverif = Label(fen1, text='Cliquez pour vérifier') labverif.pack(padx=5, pady=5) can1.bind("<1>", OnClic) fen1.mainloop()
Encore merci à tous pour votre aide et vos réponses pleinement satisfaisantes et enrichissantes.
Très bon week-end à vous.