Comment faire chevaucher des widgets avec le gestionnaire de géométrie de pack Tkinter?

StackOverflow https://stackoverflow.com/questions/112263

  •  02-07-2019
  •  | 
  •  

Question

Je souhaite placer un Canvas avec une image dans ma fenêtre, puis je souhaite emballer des widgets dessus, afin que Canvas joue le rôle d'arrière-plan.

Est-il possible d'avoir deux états pour le gestionnaire pack : un pour un ensemble de widgets et un autre pour un autre??

Était-ce utile?

La solution

La réponse à votre question spécifique est non. Vous ne pouvez pas avoir deux états ou utiliser autrement pack de deux manières différentes dans le même parent.

Cependant, ce que je pense que vous voulez accomplir est simple. Utilisez les fonctionnalités intégrées du canevas pour créer un élément d'image faisant partie du canevas, puis insérez les éléments dans le canevas comme s'il s'agissait d'un cadre.

Vous pouvez obtenir un résultat similaire en créant un widget d'étiquette avec une image, puis insérez vos autres widgets dans l'étiquette.

Un des avantages de l'utilisation d'un canevas réside dans le fait que vous pouvez facilement associer une image en mosaïque pour qu'elle remplisse l'intégralité de la toile avec une image d'arrière-plan répétée. image ...)

Autres conseils

Je pense que la réponse de Bryan est probablement la meilleure solution générale. Toutefois, vous pouvez également consulter le placer le gestionnaire de géométrie. Le gestionnaire de géométrie espace vous permet de spécifier la taille et la position exactes du widget ... ce qui peut rapidement s'avérer fastidieux, mais qui fera le travail.

  

... s'est avéré inutilisable parce que je voulais y ajouter des étiquettes et davantage de toiles, mais je ne trouve aucun moyen de rendre leurs arrière-plans transparents

S'il est acceptable de charger une extension supplémentaire, consultez Tkzinc . . Sur le site Web,

  

Le widget Tkzinc (appelé historiquement Zinc) est très similaire au canevas Tk en ce qu’il prend en charge les graphiques structurés. Tout comme Canvas, Tkzinc implémente des éléments permettant d’afficher des entités graphiques. Ces éléments peuvent être manipulés et des liaisons peuvent y être associées pour implémenter des comportements d'interaction. Mais contrairement à Canvas, Tkzinc peut structurer les éléments dans une hiérarchie, prend en charge la mise à l'échelle et la rotation, le découpage peut être défini pour les sous-arbres de la hiérarchie d'élément, prend en charge les courbes à plusieurs contours. Il offre également un rendu avancé à l'aide d'OpenGL, tel qu'un dégradé de couleur, un antialiasing, des transparences et un élément de triangles.

Je l'utilise actuellement sur un projet tcl et je suis assez satisfait des résultats. Des extensions pour tcl, perl et python sont disponibles.

Non sans permuter les arborescences de widgets, ce qui, à mon avis, ne peut pas être fait proprement avec Tk. D'autres boîtes à outils peuvent le faire un peu plus élégamment.

  • COM / VB / MFC peut le faire avec un contrôle ActiveX - vous pouvez masquer / afficher plusieurs contrôles ActiveX dans la même région. N'importe lequel des conteneurs vous permettra de le faire en changeant l'enfant. Si vous utilisez un programme spécifique à Windows, vous pourrez peut-être le réaliser de cette manière.
  • QT vous permettra également de procéder de la même manière.
  • GTK est légèrement plus dur.
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top