Existe-t-il des conseils sur les meilleures pratiques concernant l'utilisation de pack ou de grille pour leurs mises en page? De ce que j'ai lu via google, le concencus semble être que la grille peut gérer n'importe quel scénario de pack, mais pas vice-versa. Pour commencer la conversation, il semble qu'un cas d'utilisation qui privilégie la grille par rapport au pack est quand on veut afficher/masquer les widgets.Quand utiliser des mises en page de pack ou de grille dans tkinter?
Répondre
Aucun des deux n'est intrinsèquement meilleur que l'autre. Chacun a ses forces et ses faiblesses. Apprenez ce que c'est et le choix de l'utilisation devient évident.
grille est considérablement plus facile à utiliser si vous avez besoin de disposer les choses dans une grille. pack est généralement plus facile à utiliser si tout ce que vous devez faire est de mettre des widgets dans une seule ligne ou une seule colonne. Il y a beaucoup de zones grises entre lesquelles aucun n'est nécessairement meilleur que l'autre.
L'autre chose à considérer est ce que vous avez dit dans votre question: si vous voulez afficher et masquer les widgets à l'exécution, la grille est probablement le meilleur choix à cause de la méthode grid_remove. Mon premier choix est toujours d'utiliser pack parce que j'ai d'abord appris Tk en arrière quand il n'y avait pas de commande de grille. Si je ne peux pas le faire facilement en pack, je vais utiliser la grille.
Personnellement, je pense simplement que la grille est beaucoup plus facile à travailler, alors je l'utiliserais. Bien sûr, vous avez probablement lu la chose que vous ne devriez jamais faire est d'essayer d'utiliser les deux en même temps dans le même conteneur. Merci à Bryan Oakley d'avoir fait cette distinction.
@MatrixFron: pour être clair: vous pouvez utiliser les deux, mais pas les deux dans le même conteneur. Dans une application, vous pouvez mélanger et faire correspondre tout ce que vous voulez. –
Merci. C'est bon d'entendre les autres utiliser la grille par défaut. – Malcolm
Je recommande toujours le suremballage pour les applications polies. Il y a seulement quelques cas de bordure où le paquet est plus facile et s'ajuste à la facture (tout dans une rangée ou col). la grille a une meilleure "composabilité" (par exemple des mégawidgets ou des éléments de grille d'éléments quadrillés). Les raisons de préférer la grille sont les options de réglage fin supplémentaires qu'elle fournit. L'utilisation du poids (qui a un effet sur la croissance et le rétrécissement), la taille et la taille maximale, ainsi que des fonctions pratiques comme l'application de lignes/colonnes uniformes.
Une application entièrement quadrillée de toute taille utilisera (significativement) moins de cadres qu'une application compacte équivalente, et aura un meilleur contrôle de rétrécissement/expansion sur les éléments internes. BTW, à la fois le pack et la grille peuvent afficher/masquer les sous-éléments, bien que la syntaxe diffère légèrement entre les deux. La grille est juste légèrement meilleure parce que 'enlever' (plutôt que 'oublier') rappellera les options de grille sur le widget esclave.
Merci pour vos commentaires. Comme la plupart, j'ai commencé à programmer Tkinter en utilisant la technique du pack en raison de sa simplicité et parce que la plupart des exemples de code Tkinter semblent utiliser pack. Mais plus j'étudie les capacités du gestionnaire de disposition de la grille, plus je pense que c'est une technique de mise en page à usage général «meilleure» que le pack. – Malcolm
Merci. J'ai d'abord appris le pack, donc c'était ma préférence par défaut. Cependant, en examinant mon code, je pense que la grille peut être une solution plus générale pour moi à l'avenir. – Malcolm