为什么我的GtkTreeView只在gtkitem事件结束后才更新?

时间:2011-09-19 20:11:03

标签: gtk delay popupmenu gtktreeview

我有一个包含列和值的gtktree。我还有一个带有一个gtkmenuitem的弹出菜单:'刷新'。

刷新事件有两件事:

  • 重新填充我的gtktree
  • 预先形成查询。

查询不是立即的,大约需要5秒钟。为什么我只能在查询5秒后看到树的更新?我想立即更新gtktree,我不明白更新的延迟。

1 个答案:

答案 0 :(得分:2)

如果您正在进行长时间的计算,那么程序正忙于执行此操作并且没有时间更新GUI。要解决此问题,请确保在查询的“主循环”中执行以下代码(如果它有这样的事情):

while(gtk_events_pending())
    gtk_main_iteration();

如果您的查询没有循环,例如,如果它在外部库中完全运行,您将不得不按照Will建议并在单独的线程中运行它。