Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]
Groups > fr.comp.lang.python > #3303
| 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 |
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 | Next — Previous in thread | Find similar
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