Python PyGTK TreeView显示ListStore中的空行
我试图在树视图中显示数据库中的几行,但我得到的只是一些虚拟行,如下图所示Python PyGTK TreeView显示ListStore中的空行,python,gtk,gtktreeview,Python,Gtk,Gtktreeview,我试图在树视图中显示数据库中的几行,但我得到的只是一些虚拟行,如下图所示 class SettingsDialog(gtk.Dialog): def __init__(self): gtk.Dialog.__init__(self, "Server Settings", self, gtk.DIALOG_MODAL | gtk.DIALOG_DESTROY_WITH_PARENT) # Instantiate ServerManager
class SettingsDialog(gtk.Dialog):
def __init__(self):
gtk.Dialog.__init__(self, "Server Settings", self, gtk.DIALOG_MODAL | gtk.DIALOG_DESTROY_WITH_PARENT)
# Instantiate ServerManager
self.server_manager = ServerManager()
# Create TreeStore for Server list
self.liststore = gtk.ListStore(str, str)
self.treeview = gtk.TreeView(self.liststore)
# Create TreeViewColumns to display data
cell = gtk.CellRendererText()
col = gtk.TreeViewColumn("Name")
col.pack_start(cell, True)
self.treeview.append_column(col)
cell = gtk.CellRendererText()
col = gtk.TreeViewColumn("URL")
col.pack_start(cell, True)
self.treeview.append_column(col)
self.vbox.pack_start(self.treeview)
self.resize(500,350)
self.set_position(gtk.WIN_POS_CENTER)
self.show_all()
self.load_server_list()
def load_server_list(self):
self.liststore.clear()
servers = self.server_manager.list()
for name, url in servers.iteritems():
self.liststore.append([name, url])
self.show_all()
从
self.server\u manager.list()
返回的数据有效并添加到列表存储中。单元格渲染器似乎有问题,但我无法找到错误。您必须在列上设置属性映射。例如,cellrenderer的文本属性值将显示在treeview单元格中。它取自数据模型(self.liststore)上的值。从中获取值的模型上的列号在属性映射中指定
## Take value for *text* attribute of the cell renderer from the model's 3rd column
col = gtk.TreeViewColumn(title, cellrenderer, text=2)