PyGTK - Bölmeli Sınıf
Paned sınıf, iki ayarlanabilir bölmeyi yatay (gtk.Hpaned) veya dikey (gtk.Vpaned) olarak görüntüleyebilen widget'lar için temel sınıftır. Bölmelere alt widget'lar pack1 () ve pack2 () yöntemleri kullanılarak eklenir.
Bölmeli pencere öğesi, iki bölme arasına bir ayırıcı kaydırıcı çizer ve bunların göreli genişlik / yüksekliğini ayarlamak için bir tutamaç sağlar. Bir bölme içindeki alt parçacığın yeniden boyutlandırma özelliği True olarak ayarlanmışsa bölmelerin boyutuna göre yeniden boyutlandırılacaktır.
HPaned ve VPaned sınıfı için aşağıdaki yöntemler mevcuttur -
Paned.add1 (child) - Bu, tarafından belirtilen widget'ı ekler child üst veya sol bölmeye
Paned.add2 (child) - Bu, tarafından belirtilen widget'ı ekler child alt veya sağ bölmeye.
Paned.pack1 (alt, yeniden boyutlandırma, küçültme) - Bu, tarafından belirtilen widget'ı ekler childparametreleri ile üst veya sol bölmeye. Eğerresize dır-dir True, childbölmeli widget yeniden boyutlandırıldığında yeniden boyutlandırılmalıdır. Eğershrink dır-dir True, child minimum boyut talebinden daha küçük yapılabilir.
Paned.pack2 (alt, yeniden boyutlandırma, küçültme) - Bu, iki bölme arasındaki bölücünün konumunu ayarlar.
Her iki Paned widget türü de aşağıdaki sinyalleri yayar -
kabul pozisyonu | Bu ne zaman yayınlanır paned odak, odaklanmış alt widget'in etkinleştirilmesine neden olur. |
iptal pozisyonu | Bu, Esc tuşuna basıldığında paned odak var. |
hareket tutacağı | Bu ne zaman yayınlanır paned odağa sahiptir ve ayırıcı taşınır. |
Misal
Aşağıdaki örnek bir gtk.Hpaned widget'ı kullanır. Sol bölmede, bir TreeView parçacığı eklenir ve sağ bölmede bir Metin Görünümü parçacığı bulunur. TreeView'da herhangi bir satır seçildiğinde, bir geri arama işlevine bağlı olan row_activated sinyali yayar. on_activated()function satırın metnini alır ve metin görünümü panelinde görüntüler.
Kodu inceleyin -
import gtk, gobject
class PyApp(gtk.Window):
def __init__(self):
super(PyApp, self).__init__()
self.set_title("HPaned widget Demo")
self.set_default_size(250, 200)
vp = gtk.HPaned()
sw = gtk.ScrolledWindow()
sw.set_policy(gtk.POLICY_AUTOMATIC, gtk.POLICY_AUTOMATIC)
tree = gtk.TreeView()
languages = gtk.TreeViewColumn()
languages.set_title("GUI Toolkits")
cell = gtk.CellRendererText()
languages.pack_start(cell, True)
languages.add_attribute(cell, "text", 0)
treestore = gtk.TreeStore(str)
it = treestore.append(None, ["Python"])
treestore.append(it, ["PyQt"])
treestore.append(it, ["wxPython"])
treestore.append(it, ["PyGTK"])
treestore.append(it, ["Pydide"])
it = treestore.append(None, ["Java"])
treestore.append(it, ["AWT"])
treestore.append(it, ["Swing"])
treestore.append(it, ["JSF"])
treestore.append(it, ["SWT"])
tree.append_column(languages)
tree.set_model(treestore)
vp.add1(tree)
self.tv = gtk.TextView()
vp.add2(self.tv)
vp.set_position(100)
self.add(vp)
tree.connect("row-activated", self.on_activated)
self.connect("destroy", gtk.main_quit)
self.show_all()
def on_activated(self, widget, row, col):
model = widget.get_model()
text = model[row][0]
print text
buffer = gtk.TextBuffer()
buffer.set_text(text+" is selected")
self.tv.set_buffer(buffer)
if __name__ == '__main__':
PyApp()
gtk.main()
Yukarıdaki kod aşağıdaki çıktıyı üretecektir -