【问题标题】:adding items to treeview in PyGObject在 PyGObject 中将项目添加到树视图
【发布时间】:2011-11-09 21:18:51
【问题描述】:

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

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

【问题讨论】:

    标签: python gtk glade pygobject gtktreeview


    【解决方案1】:

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

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

    【讨论】:

    • 是的,我很确定。从我的逐字发布中也应该清楚。但为了确定绝对不是这样,我将渲染器重命名为“r”,并尝试了修改后的代码。还是不行。
    • 我不确定您的代码是逐字粘贴的。您可以将回溯添加到您的问题吗?更新您的问题后,我将删除此答案。
    • 当然。我已将其添加到 OP。
    • @v923z:我会加倍努力并坚持我的答案。您所看到的与 gtk/glade/treeview 无关。 Python 告诉您它无法调用Gtk.TreeViewColumn,因为您用作参数的名称之一未定义。现在,我同意这不是您粘贴的代码显示的内容,但我质疑粘贴的代码是否准确表示您的真实代码。
    • 我不确定您所说的“代码的准确表示”是什么意思。我已经粘贴了我使用的代码,并且由于 python 是一种解释语言,我想那一定是在 python 中运行的代码。事实上,当我将名称从渲染器更改为 r 时,python 会抱怨 r 未定义。由此我唯一可以得出的结论是我正在运行我在此处发布的代码。怎样才能更准确地表示?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2017-01-09
    • 2020-11-11
    • 2014-10-30
    • 2023-03-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多