J'essaye de créer une grille de boutons (afin d'obtenir l'effet de cellule cliquable) avec Tkinter.Comment créer une grille de boutons de redimensionnement automatique dans tkinter?
Mon principal problème est que je ne peux pas faire le grid
et les boutons autoresize et s'adapter à la fenêtre parente. Par exemple, quand j'ai un nombre élevé de boutons sur la grille, au lieu de rétrécir les boutons pour que la grille s'insère dans la fenêtre, j'obtiens un cadre étiré qui disparaît de l'écran.
L'effet que je recherche est la grille remplissant tout l'espace disponible, puis redimensionnant ses cellules pour s'adapter à cet espace. J'ai lu la documentation, mais je n'arrive toujours pas à comprendre comment la faire fonctionner.
Ceci est le code de base qui est mon point de départ:
def __init__(self):
root = Tk()
frame = Frame(root)
frame.grid()
#some widgets get added in the first 6 rows of the frame's grid
#initialize grid
grid = Frame(frame)
grid.grid(sticky=N+S+E+W, column=0, row=7, columnspan=2)
#example values
for x in range(60):
for y in range(30):
btn = Button(grid)
btn.grid(column=x, row=y)
root.mainloop()
Merci! Cela a bien fonctionné. Je ne sais pas pourquoi je n'ai pas trouvé la classe Grid. Je lisais dans la documentation des gestionnaires de géométrie, mais découvre seulement la méthode .grid. – Kiril
Votre exemple ne voit pas les boutons se développer lorsque vous le redimensionnez sur mon système. J'utilise Xubuntu 14.04, 32 bits. Je l'ai essayé sur Python 2.x et 3.x. – Shule
Exemple très utile. @Kiril - vous pouvez également appeler columnconfigure à partir d'une référence d'objet, par ex. root.rowconfigure (0, weight = 1) – NargothBond