Quand utiliser la mise en page pack ou grid dans tkinter?
y a-t-il des conseils sur les meilleures pratiques concernant le moment où il faut utiliser le pack par rapport à la grille pour la mise en page?
D'après ce que j'ai lu via google, le concencus semble être que la grille peut gérer n'importe quel scénario pack mais pas vice-versa.
pour commencer la conversation, il apparaît qu'un cas d'utilisation qui favorise la grille par rapport au paquet est quand on veut afficher/cacher des widgets.
3 réponses
Ni est intrinsèquement meilleur que l'autre. Ont chacun des forces et des faiblesses. Apprendre ce que ceux qui sont le choix de l'utiliser devient évident.
grid
est beaucoup plus facile à utiliser si vous avez besoin de poser les choses dans une grille. pack
est généralement plus facile à utiliser si tout ce que vous devez faire est de mettre les widgets dans une seule ligne ou une seule colonne. Il y a beaucoup de zone grise entre-deux où ni est nécessairement meilleure que l'autre.
Les autres chose à considérer est ce que vous avez dit dans votre question: si vous voulez montrer et cacher des widgets à l'exécution,grid
est probablement le meilleur choix à cause de grid_remove
méthode qui mémorise les valeurs de tous les attributs configurés au cas où vous souhaiteriez ajouter de nouveau le widget.
Personnellement, mon premier choix est toujours d'utiliser pack
parce que J'ai d'abord appris Tk quand il n'y avait pas de grid
la commande. Si je ne peux pas le faire facilement dans pack
, ou si je suis très clairement exposer les choses dans un grille, je vais utiliser grid
.
je recommande toujours grid over pack pour les applications polies. Il n'y a que quelques cas de bordures où le pack est plus facile et s'adapte à la facture (tout dans une rangée ou col). Le grid présente une meilleure" composabilité " (par exemple, mégawidgets ou éléments de maillage d'éléments maillés). Les raisons de préférer grid sont les options supplémentaires de réglage fin qu'il fournit. L'utilisation de poids (qui effets croissance et rétrécissement btw), minsize et maxsize, ainsi que des fonctionnalités de commodité comme l'application uniforme les lignes/colonnes.
une application entièrement quadrillée de n'importe quelle taille utilisera (de façon significative) moins de cadres qu'une application empaquetée équivalente, et aura un meilleur contrôle de rétrécissement/expansion sur les éléments intérieurs.
BTW, pack et grid peuvent afficher/cacher des sous-éléments, bien que la syntaxe diffère légèrement entre les deux. Grid est juste un peu mieux car ' remove '(plutôt que' forget') se souviendra des options grid sur le widget esclave.
personnellement, je pense juste que grid est beaucoup plus facile à travailler avec, donc je voudrais utiliser cela. Bien sûr, vous avez probablement lu la seule 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.