LinuxSir.cn,穿越时空的Linuxsir!

 找回密码
 注册
搜索
热搜: shell linux mysql
查看: 709|回复: 7

[求教]怎么刷新widget里面的内容?

[复制链接]
发表于 2005-2-15 17:58:47 | 显示全部楼层 |阅读模式
我想通过一个signal事件的处理函数来刷新一个widget里面的内容,怎么做呢?
发表于 2005-2-15 21:50:08 | 显示全部楼层
刷新内容,如果是标签控件的话,就找相应的函数好了。有设置内容的函数的。
信号事件触发函数就行了。
回复 支持 反对

使用道具 举报

 楼主| 发表于 2005-2-16 11:03:10 | 显示全部楼层
我现在是用信号事件,来刷新tree view的内容.搜索了一下资料,好像tree view会自动随与其绑定的model的变化而变化,所以我应该是只要在信号事件处理函数中改变相应的model就应该可以吧.还没有实现,暂且理解到这里.

现在我又出新问题了:改变上面的model需要一个参数,而这个参数是一个comboboxentry的当前值,信号事件就是comboboxentry的当前值改变事件,我怎么得到他的当前值呢?

谢谢!!!
回复 支持 反对

使用道具 举报

 楼主| 发表于 2005-2-16 17:50:27 | 显示全部楼层
终于搞定得到comboboxentry的当前值了.

但是尝试改变tree view绑定的model,结果tree view显示的内容没有变化

有谁可以帮忙解决一下吗?

谢谢!!!!!
回复 支持 反对

使用道具 举报

发表于 2005-2-17 10:00:56 | 显示全部楼层
把代码发上来,大家一起调调看。
回复 支持 反对

使用道具 举报

 楼主| 发表于 2005-2-17 10:31:19 | 显示全部楼层
恩,好
一下是那端信号处理函数

void
on_dir_source_changed              (GtkComboBox     *combobox,
                                        gpointer         user_data)
{
   gint col;
   gchar* s = NULL;
   GtkTreeIter iter;
   GtkTreeModel* list_store;
       
   col=gtk_combo_box_get_active (combobox);

   list_store = gtk_combo_box_get_model(combobox);

   fprintf(stderr,"col changed to %d\n",col);
       
   gtk_tree_model_get_iter_first (list_store, &iter);

   while((col--)>0)
           gtk_tree_model_iter_next (list_store, &iter);

   gtk_tree_model_get (list_store, &iter,0, &s,-1);
       
   fprintf(stderr,"string changed to %s\n",s);
   
   sprintf(rootdir_source,s);
   
   list_store = gtk_tree_view_get_model((GtkTreeView *)treeview_source);
   
   list_store = create_and_fill_model (TRUE);
}
回复 支持 反对

使用道具 举报

 楼主| 发表于 2005-2-17 10:52:36 | 显示全部楼层
噢,知道了
最后一行是从新创建了一个model,不是修改绑定的model
回复 支持 反对

使用道具 举报

 楼主| 发表于 2005-2-17 11:32:35 | 显示全部楼层
搞定了

谢谢wide288的帮助
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

快速回复 返回顶部 返回列表