Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

mise en page ds fenetre tkinter

2 réponses
Avatar
alainL
Bonjour,
Je définis une taille de fenetre :

fen1.geometry("%dx%d"%(600,448))

des labels, un message et un canvas et un entry.

can1 = Canvas(fen1,width=82, height=448,bg='white')
photo = PhotoImage(file='reliure.gif')
item = can1.create_image(41,224, image=photo)

avec grid, j'essaie de placer mes labels ds une col à gauche toute.

txt1.grid(row=1, sticky=W)
txt2.grid(row=2, sticky=W)
...
txt7.grid(row=7, sticky=W)

puis mon canvas au milieu de la fenetre:

can1.grid(row=1,column=1,rowspan=7)

et mon mess et entry ds la col de droite:

notes.grid(row=1,column=2,rowspan=4)
entr1.grid(row=5,column=2, rowspan=2)

Mais l'image n'est pas au milieu et surtout, les label.txt1,2,... ne se
placent pas complètement à gauche de la fenetre . Ils laissent une marge
(column=0 ne donne rien de mieux) .
Peut-être devrais-je définir les largeurs de colonnes... ? Pas trouvé de
modèle :-((
Merci pour l'aide !
alain

2 réponses

Avatar
Eric Brunel
On Fri, 30 Nov 2007 18:49:55 +0100, alainL
wrote:

Bonjour,
Je définis une taille de fenetre :

fen1.geometry("%dx%d"%(600,448))

des labels, un message et un canvas et un entry.

can1 = Canvas(fen1,width‚, heightD8,bg='white')
photo = PhotoImage(file='reliure.gif')
item = can1.create_image(41,224, image=photo)


Une remarque en passant: si c'est juste afficher une image que tu veux, il
y a plus simple:

photo = PhotoImage(file='reliure.gif')
label = Label(fen1, image=photo)

Comme ça, pas besoin de préciser les dimensions ou le placement: ça se
fait tout seul...

avec grid, j'essaie de placer mes labels ds une col à gauche toute.

txt1.grid(row=1, sticky=W)
txt2.grid(row=2, sticky=W)
...
txt7.grid(row=7, sticky=W)

puis mon canvas au milieu de la fenetre:

can1.grid(row=1,column=1,rowspan=7)

et mon mess et entry ds la col de droite:

notes.grid(row=1,column=2,rowspan=4)
entr1.grid(row=5,column=2, rowspan=2)

Mais l'image n'est pas au milieu et surtout, les label.txt1,2,... ne se
placent pas complètement à gauche de la fenetre . Ils laissent une marge
(column=0 ne donne rien de mieux) .


Précises-le quand même. Se baser sur les valeurs par défaut n'est jamais
très bon...

Peut-être devrais-je définir les largeurs de colonnes... ? Pas trouvé de
modèle :-((


En fait, si tu ne dis rien, par défaut, toutes les lignes et colonnes vont
s'agrandir pareil lorsque tu redimensionnes la fenêtre. Pour préciser
exactement quelles sont celles qui doivent le faire, il faut configurer
les "poids" (weight) des lignes et colonnes:

fen1.grid_columnconfigure(1, weight=1)

Sauf que pour les lignes je ne sais pas: ça dépend de ce que tu veux
faire... La méthode sera grid_rowconfigure.

Merci pour l'aide !


HTH
--
python -c "print ''.join([chr(154 - ord(c)) for c in
'U(17zX(%,5.zmz5(17l8(%,5.Z*(93-965$l7+-'])"

Avatar
alainL
"Eric Brunel" a écrit dans le message de groupe de
discussion :
On Fri, 30 Nov 2007 18:49:55 +0100, alainL
wrote:

Bonjour,
Je définis une taille de fenetre :

fen1.geometry("%dx%d"%(600,448))

des labels, un message et un canvas et un entry.




.................
avec grid, j'essaie de placer mes labels ds une col à gauche toute.

......................


puis mon canvas au milieu de la fenetre:

............................


Mais l'image n'est pas au milieu et surtout, les label.txt1,2,... ne se
placent pas complètement à gauche de la fenetre . Ils laissent une marge
(column=0 ne donne rien de mieux) .


Précises-le quand même. Se baser sur les valeurs par défaut n'est jamais
très bon...

....................>

En fait, si tu ne dis rien, par défaut, toutes les lignes et colonnes vont
s'agrandir pareil lorsque tu redimensionnes la fenêtre. Pour préciser
exactement quelles sont celles qui doivent le faire, il faut configurer
les "poids" (weight) des lignes et colonnes:

fen1.grid_columnconfigure(1, weight=1)

Sauf que pour les lignes je ne sais pas: ça dépend de ce que tu veux
faire... La méthode sera grid_rowconfigure.



Finalement : text.place (x, y )
Maintenant, comment centrer ? :-))) Ah, si le 10;20 pouvait correspondre
au centre du texte !!!

alainL