LINUX.ORG.RU

[PyGTK] TreeView: ЯННП!


0

1
import pygtk
import gtk

def add_column(treeview, title, columnId, sortable=True):
  column = gtk.TreeViewColumn(title, gtk.CellRendererText(), text=columnId    )
  column.set_resizable(True)
  column.set_sort_column_id(columnId)
  treeview.append_column(column)

window = gtk.Window(gtk.WINDOW_TOPLEVEL)
window.set_title(u"Моя таблица")
window.connect("destroy", lambda w: gtk.main_quit())

# хранит данные в виде списка.
list_store = gtk.ListStore(str, str, int)
list_store.append([u'код1', u'имя1', 11])
list_store.append([u'код2', u'имя2', 22])
list_store.append([u'код3', u'имя3', 33])

tree_view = gtk.TreeView(model=list_store)

add_column(tree_view, u'Код', 0)
add_column(tree_view, u'Наименование', 1)
add_column(tree_view, u'Количество' , 2)

window.add(tree_view)
window.show_all()

gtk.main()

Это пример. Он работает.

Но если добавлять tree_view не непосредственно на форму, а в Vbox:

box0.pack_start(tree_view,True,True,5)

Вот такая вот ругань:

Traceback (most recent call last):
  File "./index.py", line 43, in <module>
    list_store.append([u'код1', u'имя1', 11])
TypeError: value is of wrong type for this column

Причем она возникает и при других изменениях данного примера, например после объявления еще каких-либо виджетов, даже если они не добавляются на форму и не запускаются.

box = gtk.VBox(homogeneous=False, spacing=0)
box.pack_start(tree_view,True,True,5)
window.add(box)
window.show_all()

всё работает

anonymous ()
Ответ на: комментарий от ananas

Блин...
Проблема была в том, что был виджет по имени str. Назвал str0 - заработало.

Спасибо.

moscwich ()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.