Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]


Groups > fr.comp.lang.python > #3303

Re: tkinter positionnement checkboxes et boutons

Newsgroups fr.comp.lang.python
From Lulu <lulu042@fry.fr.invalid>
Subject Re: tkinter positionnement checkboxes et boutons
References <slrnr728tg.qef.lulu042@Minty.Rock-n-Roll.org>
Organization koitess?
Message-ID <slrnr77dfv.ukj.lulu042@Minty.Rock-n-Roll.org> (permalink)
Date 2020-03-19 19:12 +0100

Show all headers | View raw


Le 17-03-2020, Lulu <lulu042@fry.fr.invalid> a écrit :
>  Salut,
> 
>  Je suis en train d'écrire une interface graphique pour mon script en
>  python 3 qui trace des spectres lumineux.
> 
>  J'ai mis tous les widgets dans des frames.
> 
>  J'ai deux problèmes
>  1) j'ai onze checkbox qui permettent de sélectionner les éléments
>  chimiques (3 rows de 4 colonnes) mais la première colonne qui contient
>  des éléments chimiques au nom un peu long est un peu plus large que les
>  trois autres malgré un column.configure()

Pas trouvé de solution pour ce point...

>  2) j'aurais voulu que le bouton "Quitter" soit complètement à gauche et
>  le bouton "Dessiner le spectre" soit complètement à droite mais mon
>  anchor='w' pour le premier et anchor='e' pour le second sont sans effet.

J'ai trouvé la solution au point 2)
 
>  cadre_choix_elements.grid( row=4, column=0, padx=10, pady=5, ipadx=10, sticky='ew')
>  [...]
> 
>  # frame pour les boutons 'Quitter' et 'Dessiner le spectre'
>  cadre_boutons = Frame( fenetre, bg=ze_bg, relief=ze_relief, bd=ze_bd)
>  cadre_boutons.grid( row=6, padx=10, pady=5, ipadx=10, sticky='ew')

Il manquait column=0
cadre_boutons.grid( row=6, column = 0, padx=10, pady=5, ipadx=10, sticky='ew')

Il manquait aussi :
cadre_boutons.columnconfigure(0, weight=1)
cadre_boutons.columnconfigure(1, weight=1)
cadre_boutons.columnconfigure(2, weight=1)
cadre_boutons.columnconfigure(3, weight=1)

>  button = Button( cadre_boutons, text = "Quitter", bg=ze_bg, fg=ze_fg, activebackground=ze_abg, command = fenetre.quit, font=ze_font, anchor='w')
>  button.grid( row=0, column=0, padx=10, pady=10, sticky='ew')

J'ai changé le sticky='ew' par sticky='w' 
button.grid( row=0, column=0, padx=10, pady=10, sticky='w')

J'avais rajouté un frame pour écrire mon nom et ma licence entre les
boutons "Quitter" et "Dessiner le spectre" :

cadre_notice = tk.Frame( cadre_boutons, bg=ze_bg, relier='flat', bd=ze_bd)
cadre_notice.grid( row=0, column=1, columnspan=2, sticky='ew')

ze_font = font.Font(family='Helvetica', size='9')
label = tk.label( cadre_notice, bg=ze_bg, fg=ze_fg, text = "Auteur : XXXXXX, <xxxxx@xxxxx.fr>",
font=ze_font)
label.grid( row=0, column=0, columnspan=2, sticky='ew')
label = tk.Label( cadre_notice, bg=ze_bg, fg=ze_fg, text = "licence CC-BY-NC-SA : attribution,
non-commercial, share alike", font=ze_font)
label.grid( row=1, column=0, columnsân=2, sticky='ew')

ze_font = font.FOnt(family='Helvetica', size='12')

>  button = Button( cadre_boutons, text = "Dessiner le spectre", bg=ze_bg, fg=ze_fg, activebackground=ze_abg, command = callback, font=ze_font, anchor='e')

rien de changé ici, sauf l'appel à Button qui devient tk.Button car je suis passé
de "from tkinter import *" à "import tkinter as tk"

button = tk.Button( cadre_boutons, text = "Dessiner le spectre", bg=ze_bg, fg=ze_fg, activebackground=ze_abg, command = callback, font=ze_font, anchor='e')

>  button.grid( row=0, column=3, padx=10, pady=10, sticky='ew')

Par contre, de manière inexplicable, j'avais laissé trainer un sticky='ew'. En remplaçant par
sticky='e', j'obtiens ce que je voulais.

Conclusion, il fallait...
- indiquer "column=0" dans cadre_boutons.grid()
- préciser "cadre_boutons.columnconfigure(0, weight=1)" pour chacune des 
  quatres column du cadre.
- préciser sticky='e' plutôt que sticky='ew' sur le bouton de droite.

Back to fr.comp.lang.python | Previous | NextPrevious in thread | Find similar


Thread

tkinter positionnement checkboxes et boutons Lulu <lulu042@fry.fr.invalid> - 2020-03-17 20:23 +0100
  Re: tkinter positionnement checkboxes et boutons Lulu <lulu042@fry.fr.invalid> - 2020-03-19 19:12 +0100

csiph-web