PyGTK - ScrolledWindow Sınıfı

Kaydırılmış pencere, ana pencereden daha büyük olan diğer alan widget'ına erişmek için oluşturulur. TreeView ve TextView gibi bazı widget'lar kaydırma için yerel destek sağlar. Etiket veya Tablo gibi diğerleri için bir Görünüm Penceresi sağlanmalıdır.

Gtk.ScrolledWindow sınıfının yapıcısı için aşağıdaki sözdizimi kullanılır -

sw = gtk.ScrolledWindow(hadj, vadj)

Aşağıdakiler gtk.ScrolledWindow sınıfının yöntemleridir -

  • ScrolledWindow.set_hadjustment() - Bu, yatay ayarlamayı bir gtk olarak ayarlar.

  • ScrolledWindow.set_vadjustment() - Bu, dikey ayarlamayı bir gtk olarak ayarlar.

  • ScrolledWindow.set_Policy (hpolicy, vpolicy)- Bu, "hscrollbar_policy" ve "vscrollbar_policy" özelliklerini ayarlar. Aşağıdaki önceden tanımlanmış sabitlerden biri kullanılır -

    • gtk.POLICY_ALWAYS - Kaydırma çubuğu her zaman mevcuttur

    • gtk.POLICY_AUTOMATIC - Kaydırma çubuğu yalnızca gerektiğinde mevcuttur, yani içerikler pencereden daha büyüktür

    • gtk.POLICY_NEVER - Kaydırma çubuğu hiçbir zaman mevcut değil

  • ScrolledWindow.add_with_viewport(child) - Bu yöntem, kaydırılan pencereye yerel kaydırma yetenekleri olmadan bir pencere öğesi (çocuk tarafından belirtilen) eklemek için kullanılır. Bu, eklemeye eşdeğer bir kullanışlılık işlevidirchild bir gtk.Viewport, ardından görüntü alanını kaydırılan pencereye eklemek.

Aşağıdaki kod, bir gtk.Table nesnesinin etrafına 10'a 10 boyutlarıyla kaydırılmış bir pencere ekler. Bir Tablo nesnesi ayarlamaları otomatik olarak desteklemediğinden, bir Görünüm Penceresine eklenir.

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

Her biri 10 sütunluk 10 satır eklemek için iki iç içe döngü kullanılır. Her hücreye bir gtk.Button widget'ı yerleştirilir.

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)

Yeterince büyük olan bu tablo artık bir görünüm penceresi ile birlikte kaydırılan pencereye eklenmiştir.

sw.add_with_viewport(table)

Misal

Aşağıdaki kodu inceleyin -

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()

Yukarıdaki kod aşağıdaki çıktıyı üretecektir -