Quelle combinaison de widgets GTK utiliser pour les colonnes de widgets défilables?

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

  •  19-08-2019
  •  | 
  •  

Question

Je travaille avec PyGTK pour créer une combinaison de widgets permettant d'effectuer les opérations suivantes:

  • Permettez-moi d'ajouter un nombre infini de widgets dans une colonne
  • Fournissez une barre de défilement verticale pour accéder à ceux qui partent du bas
  • Ajustez la largeur des widgets pour remplir l'espace horizontal disponible lorsque la fenêtre est redimensionnée

Merci - je suis nouveau à GTK.

Était-ce utile?

La solution

  • Un nombre infini de widgets dans une colonne: cela ressemble à une GtkVBox.
  • Barre de défilement verticale: placez votre VBox dans une GtkScrolledWindow.
  • Étirement horizontal: vous devez définir les propriétés appropriées pour la VBox, ScrolledWindow et vos autres widgets. Au moins dans Glade, les valeurs par défaut semblent traiter principalement ceci (vous voudrez probablement changer la politique de la barre de défilement de la ScrolledWindow).

Maintenant pour le tour. Si vous ne faites que ce que j'ai énuméré ci-dessus, le contenu de la VBox essaiera de redimensionner verticalement et horizontalement, sans que votre barre de défilement ne s'affiche. La solution consiste à placer votre VBox dans un GtkViewport.

La dernière hiérarchie est donc ScrolledWindow (Viewport (VBox (widgets))).

Autres conseils

Ce que Steve a dit dans le code:

vbox = gtk.VBox()
vbox.pack_start(widget1, 1, 1) ## fill and expand
vbox.pack_start(widget2, 1, 1) ## fill and expand
vbox.pack_start(widget3, 1, 1) ## fill and expand
swin = gtk.ScrolledWindow()
swin.add_with_viewport(vbox)
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top