Bonsoir,

J'essaie, sans succès, de "récupérer" les coordonnées de points créés avec ".create_line()" puis de déplacer un de ces points (ici le "pixel[4]") de 10 suivant x et de 20 suivant y.

De même, en faisant apparaître la hauteur et la largeur du Canevas, les résultats ne sont pas cohérents car la fenêtre étant presque complétement ouverte, les valeurs devraient être plus grandes.

Voici le script :
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
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
from tkinter import *
 
class Environnement (object) :
 
    def __init__(self, fenetre, canevas) :
        self.canevas = canevas
        self.confg = self.canevas.configure()
 
    def Canevas_largeur (self) :
        return(self.confg['width'][4])
 
    def Canevas_hauteur (self) :
        return(self.confg['height'][4])
 
    def Coordonnees (self) :
        for white in self.canevas.find_withtag('pixel'):
            print(self.canevas.coords(white))
 
 
class Dessin (object) :
 
    def __init__(self, x, y, couleur, canevas) :
        self.canevas = canevas
        self.x = x
        self.y = y
        self.couleur = couleur
 
    def Dessiner_Point(self):
        self.canevas.create_line(self.x, self.y, self.x+1, self.y+1, width=1, fill=self.couleur, tags='pixel')
 
 
class Programme_Principal(object) :
 
    def __init__(self) :
        self.fen = Tk()
        self.fen.geometry("2000x2000")
        self.Can = Canvas(self.fen, bg='blue')
        self.Can.pack(fill=BOTH, expand=Y)
 
        # récupération des informations sur le canevas
        self.envir = Environnement(self.fen, self.Can)
        print('Paramètres du Canevas : ')
        print('Largeur du canevas = ', self.envir.Canevas_largeur())
        print('Hauteur du canevas = ', self.envir.Canevas_hauteur())
        print('')
 
        # création d'un tableau pour enregistrer chaque "pixel" créé
        self.pixel = []
 
        print('Adresse de chaque pixel :')
        for index in range(5) :
            x, y, couleur, canevas = 50+index, 50+index, 'white', self.Can
            self.pixel.append(Dessin(x, y, couleur, canevas))
            self.pixel[index].Dessiner_Point()
            print(self.pixel[index])
        print('')
 
 
        # récupération des coordonnées de chaque pixel
        print('Coordonnées de chaque pixel : ')
        for index in range(5) :
            print('Coordonnées du pixel_', index+1, ' = ', self.Can.coords(self.pixel[index]))
        print ('')
 
        # déplacement du pixel[4] de 10 suivant x et 20 suivant y
        self.Can.move(self.pixel[4], 10, 20)
 
        # récupération des coordonnées de chaque pixel par la méthode du "tag"
        print('coordonnées de chaque pixel par la méthode du "tag" :')
        self.envir.Coordonnees()
 
        self.fen.mainloop()
 
if __name__ == '__main__' :
 
    Programme_Principal()
Pourriez-vous m'aider pour ces problèmes ?

Par avance merci.

Voici ce que j'obtiens comme résultats :

Paramètres du Canevas :
Largeur du canevas = 472
Hauteur du canevas = 330

Adresse de chaque pixel :
<__main__.Dessin object at 0x02F7BEB0>
<__main__.Dessin object at 0x02F7BA10>
<__main__.Dessin object at 0x02F840F0>
<__main__.Dessin object at 0x02F84130>
<__main__.Dessin object at 0x02F84190>

Coordonnées de chaque pixel :
Coordonnées du pixel_ 1 = []
Coordonnées du pixel_ 2 = []
Coordonnées du pixel_ 3 = []
Coordonnées du pixel_ 4 = []
Coordonnées du pixel_ 5 = []

coordonnées de chaque pixel par la méthode du "tag" :
[50.0, 50.0, 51.0, 51.0]
[51.0, 51.0, 52.0, 52.0]
[52.0, 52.0, 53.0, 53.0]
[53.0, 53.0, 54.0, 54.0]
[54.0, 54.0, 55.0, 55.0]