Comment faire pour que les widgets se chevauchent les uns les autres. Le plus bas devrait être l'image, le reste au-dessus peut être d'autres widgets comme des boutons.widgets qui se chevauchent gtk
Répondre
Sous-classe le widget agrandissement (parent). Dans une méthode create()
ou dans le constructeur, ajoutez un widget disposition (ou conteneur) au widget parent, puis insérez les autres dans le conteneur. Maintenant, menacer cette nouvelle sous-classe comme si elle était une version unique, mais spécialisée, de sa super classe. Un Window
est un exemple de widget parent, tandis que Fixed
est un exemple de conteneur. Un enfant peut être un EventBox
entourant un Image
. Le composite de tous ces éléments est un nouvel objet de fenêtre qui a des images sur lesquelles il est possible de cliquer.
Pour le cas de titlebar regard d'une fenêtre avec un fond pixmap, et les boutons, essayez un Window
avec un Image
et un récipient Fixed
pour tenir les boutons. Le Fixed
et le Image
devraient pouvoir se chevaucher car le Fixed
est transparent et un Image
n'a pas de Window
.
Si Buttons
sont vraiment ce qui est nécessaire, jetez un oeil à boîtes à boutons et Barres d'outils dans la liste des GTK Containers. Il peut être possible d'ajouter un arrière-plan Image
à l'un d'entre eux.
Une approche différente implique un Widget d'alignement (dans la même liste). Il spécifie où les petits widgets sont positionnés et dimensionnés de manière proportionnée.
J'ai supposé, OOP, mais si ce n'est pas, organisez simplement la création des widgets d'une fonction. J'ai fait des widgets composites fonctionnellement dans Haskell (gtk2hs), et Guile Gnome Plate-forme (avec et sans POO)
Merci de mentionner 'Fixed'! –