Skip to main content
 首页 » 编程设计

python之在 PyGObject 中将项目添加到 TreeView

2025年05月04日10zengkefu

我在 Glade 中创建了一个 GUI,我想填充 TreeView 小部件。这是我的代码的相关部分

def __init__(self): 
            ..... 
    self.fill_store() 
    self.add_column(self.widget('treeview_preview')) 
    self.widget('treeview_preview').set_pixbuf_column(0) 
 
def fill_store(self): 
    self.widget('liststore_preview').clear() 
    foo = GdkPixbuf.Pixbuf.new_from_file('9.png') 
    da = Gtk.Image.new_from_pixbuf(foo) 
    self.widget('liststore_preview').append([da]) 
 
def add_column(self, treeview): 
    renderer = Gtk.CellRendererPixbuf() 
    column = Gtk.TreeViewColumn("Preview", renderer, pixbuf = 0) 
    column.set_sort_column_id(0)     
    treeview.append_column(column) 

然而,当我尝试运行代码时,出现错误,提示我未定义渲染器。违规行是

column = Gtk.TreeViewColumn("Preview", renderer, pixbuf = 0) 

有人能指出错误吗?如果有帮助,这里是回溯

Traceback (most recent call last): 
File "test.py", line 10, in <module> 
class test: 
File "test.py", line 48, in test 
column = Gtk.TreeViewColumn("Preview", r, pixbuf = 0) 
NameError: name 'r' is not defined 

谢谢,

v923z

请您参考如下方法:

你确定你没有这样的错字吗?

>>> something = 1 
>>> somthing    # typo, left out 'e' 
Traceback (most recent call last): 
  File "<stdin>", line 1, in <module> 
NameError: name 'somthing' is not defined