PyGTK - Classe de boîte

La classe gtk.Box est une classe abstraite définissant la fonctionnalité d'un conteneur dans lequel les widgets sont placés dans une zone rectangulaire. Les widgets gtk.HBox et gtk.VBox en sont dérivés.

Les widgets enfants de gtk.Hbox sont disposés horizontalement sur la même ligne. D'autre part, les widgets enfants de gtk.VBox sont disposés verticalement dans la même colonne.

La classe gtk.Box utilise le constructeur suivant -

gtk.Box(homogenous = True, spacing = 0)

La propriété homogène est définie sur True par défaut. Par conséquent, tous les widgets enfants reçoivent une allocation égale.

gtk.Box utilise le mécanisme de compression pour y placer des widgets enfants en référence à une position particulière, en référence au début ou à la fin. La méthode pack_start () place les widgets du début à la fin. Au contraire, la méthode pack_end () met les widgets de bout en bout. Vous pouvez également utiliser la méthode add () qui est similaire à pack_start ().

Les méthodes suivantes sont disponibles pour gtk.HBox ainsi que gtk.VBox -

  • gtk_box_pack_start ()

  • gtk_box_pack_end ()

gtk_box_pack_start ()

Cette méthode ajoute child à la boîte, emballée en référence au début de la boîte -

pack_start(child, expand = True, fill = True, padding = 0)

Voici les paramètres -

  • child - Ceci est l'objet widget à ajouter à la boîte

  • expand- Ceci est défini sur True si l'enfant doit disposer d'un espace supplémentaire dans la boîte. L'espace supplémentaire est divisé entre tous les enfantswidgets.

  • fill- Si True, un espace supplémentaire sera alloué à l'enfant. Sinon, ce paramètre est utilisé comme remplissage.

  • padding - Il s'agit de l'espace en pixels entre les widgets dans la boîte.

gtk_box_pack_end ()

Cela ajoute un enfant à la boîte, emballé en référence à la fin de la boîte.

pack_end (child, expand = True, fill = True, padding = 0)

Voici les paramètres -

  • child - Il s'agit de l'objet widget à ajouter

  • expand- Ceci est défini sur True si l'enfant doit disposer d'un espace supplémentaire dans la boîte. Cet espace supplémentaire est divisé entre tous les widgets enfants.

  • fill - Si True, un espace supplémentaire sera alloué à l'enfant autrement utilisé comme remplissage.

  • padding - C'est l'espace en pixels entre les widgets dans la boîte.

set_spacing (spacing) est la fonction qui définit le nombre de pixels à placer entre les enfants de la boîte.

La méthode add (widget)est hérité de la classe gtk.Container. Il ajoute un widget au conteneur. Cette méthode peut être utilisée à la place de la méthode pack_start ().

Exemple

Dans l'exemple ci-dessous, la fenêtre de niveau supérieur contient une boîte verticale (boîte d'objet gtk.VBox). Il a à son tour un objet VBox vb et un objet HBox hb. Dans la case supérieure, une étiquette, un widget d'entrée et un bouton sont placés verticalement. Dans la zone inférieure, un autre ensemble d'étiquettes, d'entrée et de bouton est placé verticalement.

Respectez le code suivant -

import gtk
class PyApp(gtk.Window):
   def __init__(self):
      super(PyApp, self).__init__()
         self.set_title("Box demo")
		
      box = gtk.VBox()
      vb = gtk.VBox()
      lbl = gtk.Label("Enter name")
		
      vb.pack_start(lbl, expand = True, fill = True, padding = 10)
      text = gtk.Entry()
		
      vb.pack_start(text, expand = True, fill = True, padding = 10)
      btn = gtk.Button(stock = gtk.STOCK_OK)
		
      vb.pack_start(btn, expand = True, fill = True, padding = 10)
      hb = gtk.HBox()
		
      lbl1 = gtk.Label("Enter marks")
      hb.pack_start(lbl1, expand = True, fill = True, padding = 5)
      text1 = gtk.Entry()
		
      hb.pack_start(text1, expand = True, fill = True, padding = 5)
      btn1 = gtk.Button(stock = gtk.STOCK_SAVE)
		
      hb.pack_start(btn1, expand = True, fill = True, padding = 5)
      box.add(vb)
      box.add(hb)
      self.add(box)
      self.show_all()
PyApp()
gtk.main()

Le code ci-dessus produira la sortie suivante -