PyGTK - ScrolledWindow-Klasse

Ein gescrolltes Fenster wird erstellt, um auf andere Widgets zuzugreifen, deren Bereich größer als das übergeordnete Fenster ist. Einige Widgets wie TreeView und TextView unterstützen native Bildlauffunktionen. Für andere wie Beschriftung oder Tabelle sollte ein Ansichtsfenster bereitgestellt werden.

Die folgende Syntax wird für den Konstruktor der Klasse gtk.ScrolledWindow verwendet -

sw = gtk.ScrolledWindow(hadj, vadj)

Im Folgenden sind die Methoden der Klasse gtk.ScrolledWindow aufgeführt:

  • ScrolledWindow.set_hadjustment() - Hiermit wird die horizontale Anpassung auf ein gtk.Adjustment-Objekt festgelegt

  • ScrolledWindow.set_vadjustment() - Hiermit wird die vertikale Anpassung auf ein gtk.Adjustment-Objekt festgelegt

  • ScrolledWindow.set_Policy (hpolicy, vpolicy)- Hiermit werden die Eigenschaften "hscrollbar_policy" und "vscrollbar_policy" festgelegt. Eine der folgenden vordefinierten Konstanten wird verwendet -

    • gtk.POLICY_ALWAYS - Die Bildlaufleiste ist immer vorhanden

    • gtk.POLICY_AUTOMATIC - Die Bildlaufleiste ist nur bei Bedarf vorhanden, dh der Inhalt ist größer als das Fenster

    • gtk.POLICY_NEVER - Die Bildlaufleiste ist nie vorhanden

  • ScrolledWindow.add_with_viewport(child) - Mit dieser Methode wird dem gescrollten Fenster ein Widget (vom Kind angegeben) ohne native Bildlauffunktionen hinzugefügt. Dies ist eine praktische Funktion, die dem Hinzufügen entsprichtchild zu einem gtk.ViewportFügen Sie dann das Ansichtsfenster zum Bildlauffenster hinzu.

Der folgende Code fügt ein gescrolltes Fenster um ein gtk.Table-Objekt mit 10 x 10 Dimensionen hinzu. Da ein Tabellenobjekt Anpassungen nicht automatisch unterstützt, wird es in einem Ansichtsfenster hinzugefügt.

sw = gtk.ScrolledWindow()
table = gtk.Table(10,10)

Zwei verschachtelte Schleifen werden verwendet, um 10 Zeilen mit jeweils 10 Spalten hinzuzufügen. In jeder Zelle befindet sich ein gtk.Button-Widget.

for i in range(1,11):
   for j in range(1,11):
      caption = "Btn"+str(j)+str(i)
      btn = gtk.Button(caption)
      table.attach(btn, i, i+1, j, j+1)

Diese ausreichend große Tabelle wird jetzt zusammen mit einem Ansichtsfenster im Bildlauffenster hinzugefügt.

sw.add_with_viewport(table)

Beispiel

Beachten Sie den folgenden Code -

import gtk

class PyApp(gtk.Window):
   
   def __init__(self):
      super(PyApp, self).__init__()
      
	  self.set_title("ScrolledWindow and Viewport")
      self.set_size_request(400,300)
      self.set_position(gtk.WIN_POS_CENTER)
      sw = gtk.ScrolledWindow()
      table = gtk.Table(10,10)
      table.set_row_spacings(10)
      table.set_col_spacings(10)
      for i in range(1,11):
         for j in range(1,11):
            caption = "Btn"+str(j)+str(i)
            btn = gtk.Button(caption)
            table.attach(btn, i, i+1, j, j+1)
      sw.add_with_viewport(table)
      self.add(sw)
      
	  self.connect("destroy", gtk.main_quit)
      self.show_all()

PyApp()
gtk.main()

Der obige Code generiert die folgende Ausgabe: