2010-11-02 15 views
2

Je veux essentiellement pouvoir utiliser un Canvas comme méta-conteneur pour d'autres widgets. Je veux diviser mon GUI en une section gauche, centrale et centrale. Dans chaque section, je voudrais être en mesure de lieu widgets comme: Checkbutton, Button, Label, etc.Comment placer un widget dans un widget Canvas dans Tkinter?

Comment placer des widgets dans un widget Canvas?

Répondre

3

Vos choix dépendent de ce que vous essayez vraiment d'accomplir. Pourquoi utiliser une toile préférable d'utiliser un cadre?

Vous pouvez facilement ajouter des widgets à un canevas comme n'importe quel autre conteneur, en utilisant un pack, une grille ou un emplacement. lorsque vous faites cela, les éléments ne défileront pas lorsque vous faites défiler le canevas car ils ne font pas partie du canevas.

L'autre choix consiste à créer des objets fenêtre sur le canevas. Vous faites cela avec la méthode create_window de la toile. L'avantage est que cette fenêtre devient une partie de la toile et défilera avec tous les autres objets sur la toile. L'inconvénient est, votre seule option est le placement absolu et vous devez contrôler explicitement la taille des widgets.

+0

J'ai décidé d'utiliser le widget Frame à la place. La grille peut-elle être spécifique à une image (par rapport à la "trame" principale)? – thenickname

+0

@thenickname: Je ne comprends pas votre question. Grid est un gestionnaire de géométrie qui fonctionne avec tous les widgets. Vous pouvez utiliser la grille dans la fenêtre principale, dans les cadres enfants, dans les canevas, etc. –

+0

J'avais l'impression que, si vous deviez appliquer une grille à une image, les adresses de la grille seraient uniques à cette image. De plus, toutes les images créées dans le maître seront soumises aux coordonnées de la grille principale. Est-ce vrai? – thenickname