如何向Gtk.ListStore添加行?

2 投票
1 回答
3788 浏览
提问于 2025-04-17 16:10

我正在尝试把我的应用程序从 Python 2.7 的 pyGTK 切换到 Python 3 和 pyGObject,但在往 Gtk.ListStore 里添加行时遇到了很多麻烦 :/

这段代码:

#!/usr/bin/env python3

from gi.repository import Gtk

listStore = Gtk.ListStore(str)
itr = Gtk.TreeIter()
listStore.append(itr)
listStore.set_value(itr, 0, 'Its working')

总是给我报错:

Traceback (most recent call last):
  File "./test.py", line 7, in <module>
    listStore.append(itr)
  File "/usr/lib/python3/dist-packages/gi/overrides/Gtk.py", line 1017, in append
    return self._do_insert(-1, row)
  File "/usr/lib/python3/dist-packages/gi/overrides/Gtk.py", line 1008, in _do_insert
    row, columns = self._convert_row(row)
  File "/usr/lib/python3/dist-packages/gi/overrides/Gtk.py", line 850, in _convert_row
    if len(row) != n_columns:
TypeError: object of type 'TreeIter' has no len()

这是怎么回事呢?我该怎么往 Gtk.ListStore 里添加新行呢?

1 个回答

5

只需使用下面的命令:

itr = store.append(['Its working', ])

你可以在 Python GTK+ 3 教程 中找到更多示例。

撰写回答