gpt4 book ai didi

c - 为什么行不通过调用 gtk_list_store_set 函数在 TreeView 中更新

转载 作者:行者123 更新时间:2023-11-30 16:42:54 25 4
gpt4 key购买 nike

每秒更新一次gtk中表格的内容,但一段时间后表格内容保持不变,直到鼠标在表格上移动。表中变化的量是buf变量,是时间类型。

    store = gtk_tree_view_get_model(GTK_TREE_VIEW(treeview_circuit));

gtk_tree_model_foreach(GTK_TREE_MODEL(store),
(GtkTreeModelForeachFunc) foreach_func,
&rr_list);
if (rr_list != NULL)
{
GtkTreePath *path;

path = gtk_tree_row_reference_get_path((GtkTreeRowReference*) rr_list->data);

if (path)
{
GtkTreeIter iter;

if (gtk_tree_model_get_iter(GTK_TREE_MODEL(store), &iter, path))
{
char buf[10];
format_sec_time(buf, ci->circuit_age);
gtk_list_store_set(GTK_LIST_STORE(store), &iter,
COL_ID, ci->circ_id,
COL_PURPOSE, purpose[ci->purpose],
COL_STATE, states[ci->state],
COL_CREATION_TIME, ci->creation_time,
COL_TIMER, buf,
-1);
}
}
}
else
{
AddTreeViewCircuit(ci);
}

g_list_foreach(rr_list, (GFunc) gtk_tree_row_reference_free, NULL);
g_list_free(rr_list);
}

最佳答案

它应该更新,需要更多代码来检查声明。作为解决方法,您可以强制 TreeView 在更新后重绘。

添加:

gtk_widget_queue_draw(GTK_WIDGET(treeview_circuit));

gtk_list_store_set之后。

关于c - 为什么行不通过调用 gtk_list_store_set 函数在 TreeView 中更新,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45650902/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com