gpt4 book ai didi

python - PyGTK TreeView 显示来自 ListStore 的空白行

转载 作者:太空狗 更新时间:2023-10-30 03:07:03 25 4
gpt4 key购买 nike

我试图在 TreeView 中显示数据库中的几行,但我得到的只是一些虚拟行,如下图所示。

Application Screenshot

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_manager.list() 返回的数据是有效的,并且完美地添加到列表存储中。 CellRenderers 似乎有问题,但我找不到错误。

最佳答案

您必须在列上设置属性映射。例如,cellrenderer 的 text 属性值将显示在 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)

关于python - PyGTK TreeView 显示来自 ListStore 的空白行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6404739/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com