Glade:尝试删除列表存储行时的差异

时间:2019-02-15 15:05:03

标签: python gtk glade gtktreeview

我正在使用Glade和Gtk构建应用程序。

我有一个树状视图。在Glade中,我配置了此树视图,以便其模型为名为liststore的GtkListstore。 该列表存储具有两列类型为gcharray的列。

我使用pyinotify检测何时插入和插入USB媒体。当插入某些东西时,发生了什么事:

self.liststore.append() # empty row
for value1 in some_list:
    row_shape = [value2,value1]
    self.liststore.append(row_shape)

基本上,我只是将几行添加到列表存储中。效果很好。

插入USB介质后,应该发生以下情况:

current_iter = self.liststore.get_iter_first()
delete_items = list()
while current_iter:
    if self.liststore[current_iter][0] == some_value
         delete_items.append(current_iter)
    current_iter = self.liststore.iter_next(current_iter)
for i in delete_items:
     self.liststore.remove(i)

当代码到达删除部分时,出现黑屏,并显示一条错误消息:

  

GTK关键**:gtktreeview.c:6908(do_validate_rows):断言`gtk_tree_model_iter_next(tree_view_> priv-> model,&iter)'失败。   GtkTreeView的内部视图和GtkTreeModel之间存在差异。通常,这意味着模型已更改而没有告知视图。从现在开始的任何显示都可能不正确。

我的删除过程出了什么问题?

编辑:

当我想删除第一个列表存储区时,我通过设置一个新的列表存储部分解决了该问题。我的屏幕没有变黑,但仍然出现错误:

  

GTK关键**:gtk_list_store_get_value:断言'column n_columns'失败

0 个答案:

没有答案