Probleme de gestion de frames
Fermé
xunil2003
Messages postés
766
Date d'inscription
mercredi 17 novembre 2004
Statut
Membre
Dernière intervention
29 septembre 2024
-
10 juin 2022 à 18:29
goplin - 14 juin 2022 à 23:17
goplin - 14 juin 2022 à 23:17
A voir également:
- Probleme de gestion de frames
- Logiciel gestion photo gratuit - Guide
- Logiciel gestion locative gratuit excel - Télécharger - Comptabilité & Facturation
- Logiciel gestion cave à vin gratuit - Télécharger - Cuisine & Gastronomie
- Gestion autorisation application android - Guide
- Logiciel gestion association gratuit excel - Télécharger - Gestion de projets
1 réponse
Bonsoir,
Je ne sais si tu as trouvé comment disposer tes frames sous forme de tableau, mais je donne tout de même un semblant d'exemple.
Je pense que le gestionnaire grid est bien plus adapté pour faire un tableau de frames que pack.
Exemple en utilisant grid, j'ai mis des dimensions pour l'exemple, à toi d'adapter, ce qu'il faut bien comprendre, est l'utilisation conjointe du sticky dans le grid avec les fusions de cellules et colonnes(comme dans un tableau d'une page html ou encore d'un traitement de texte).
Si tu as besoin d'éclaircissements sur certains points de ce code, n'hésite pas =)
Je ne sais si tu as trouvé comment disposer tes frames sous forme de tableau, mais je donne tout de même un semblant d'exemple.
Je pense que le gestionnaire grid est bien plus adapté pour faire un tableau de frames que pack.
Exemple en utilisant grid, j'ai mis des dimensions pour l'exemple, à toi d'adapter, ce qu'il faut bien comprendre, est l'utilisation conjointe du sticky dans le grid avec les fusions de cellules et colonnes(comme dans un tableau d'une page html ou encore d'un traitement de texte).
import tkinter as tk def frames_build(master): ct = tk.Frame(master) ct.grid() frames = {} frames[0] = tk.Frame(ct, width=400, height=40, bg='orange', relief=tk.FLAT, borderwidth=5) frames[0].grid(columnspan=3, sticky=tk.NSEW) frames[1] = tk.Frame(ct, width=240, height=200, bg='red') frames[1].grid(row=1, column=0, rowspan=2, sticky=tk.NSEW) # les 4 frames restantes frames_param = (('grey', 1, 1), ('pink', 1, 2), ('blue', 2, 1), ('purple', 2, 2),) for i, (bg, row, col) in enumerate(frames_param, start=2): frames[i] = tk.Frame(ct, width=80, height=100, bg=bg) frames[i].grid(row=row, column=col, sticky=tk.NSEW) for i in range(6): frames[i].grid_propagate(0) # Permet aux frames de perdre leur "élasticité" # permet de centrer le label dans les frames (cas de widget enfant unique) frames[i].rowconfigure(0, weight=1) frames[i].columnconfigure(0, weight=1) lbl = tk.Label(frames[i], text=f'frame {i}', anchor=tk.CENTER) lbl.grid() window = tk.Tk() frames_build(window) window.mainloop()
Si tu as besoin d'éclaircissements sur certains points de ce code, n'hésite pas =)