Gtk.Treeview
indide a Gtk.ScrolledWindow
ile ilgili bir sorunum var. Normal pencere geometrilerimin içine sığmayan büyük miktarda veriye sahibim, bu yüzden Treeview'imi normal yoldan görünen bir ScrolledWindow
içine koydum. Bu çözümle ilgili sorun, kaydırma yaptığımda, Sütun Başlıklarımın reddedilmesi. Bu davranış ScrolledWindow
'un içindeki widget'ları önemsemesi gerektiğinden bana biraz açık gibi görünüyor.Bir gtk.ScrolledWindow içinde bir GtkTreeView içinde sütun başlıkları nasıl gösterilir?
Peki, Treeview'imi kaydırılabilir VE sütun başlıklarını her zaman ilk satırda göstermek için nasıl alabilirim?
Ben sorunumu temsil etmek basictreeview.py değiştirilmiş bir örnek:self.scrolledwindow.add_with_viewport
self.scrolledwindow.add
için
#!/usr/bin/env python
# example basictreeview.py
import pygtk
pygtk.require('2.0')
import gtk
class BasicTreeViewExample:
# close the window and quit
def delete_event(self, widget, event, data=None):
gtk.main_quit()
return False
def __init__(self):
# Create a new window
self.window = gtk.Window(gtk.WINDOW_TOPLEVEL)
self.window.set_title("Basic TreeView Example")
self.window.set_size_request(200, 200)
self.window.connect("delete_event", self.delete_event)
# create a TreeStore with one string column to use as the model
self.liststore = gtk.ListStore(str)
# we'll add some data now - 4 rows with 3 child rows each
for i in range(10):
self.liststore.append([str(i)])
# create the TreeView using treestore
self.treeview = gtk.TreeView(self.liststore)
# create the TreeViewColumn to display the data
self.tvcolumn = gtk.TreeViewColumn("Column-Name", gtk.CellRendererText(), text=0)
# add tvcolumn to treeview
self.treeview.append_column(self.tvcolumn)
# make it searchable
self.treeview.set_search_column(0)
# Allow sorting on the column
self.tvcolumn.set_sort_column_id(0)
# Allow drag and drop reordering of rows
self.treeview.set_reorderable(True)
# Add Treeview to a ScrolledWindow
self.scrolledwindow = gtk.ScrolledWindow(hadjustment=None, vadjustment=None)
self.scrolledwindow.set_policy(gtk.POLICY_AUTOMATIC, gtk.POLICY_AUTOMATIC)
self.scrolledwindow.add_with_viewport(self.treeview)
self.window.add(self.scrolledwindow)
self.window.show_all()
def main():
gtk.main()
if __name__ == "__main__":
tvexample = BasicTreeViewExample()
main()
Bunu yapan bir uygulama bulabilir misiniz? Eğer öyleyse, en iyi bahsiniz kaynak koduna bakmaktır. Bildiğim kadarıyla, bunu GtkTreeView ile yapmanın kolay bir yolu yok. – ptomato