当前位置:  技术问答>linux和unix

GTK怎样根据值找到列表控件中指定的一行?

    来源: 互联网  发布时间:2017-03-27

    本文导语:  GtkListStore可以插入一行一行的数据,可是我现在想根据一行的第一列数据的值找到这一行数据。找到它的指针。 比如有一下一个列表 名字  分数 chao  60 xiaom 100 defei  90 我知道了xiaom这个名字想在列表中找它的分...

GtkListStore可以插入一行一行的数据,可是我现在想根据一行的第一列数据的值找到这一行数据。找到它的指针。

比如有一下一个列表
名字  分数
chao  60
xiaom 100
defei  90
我知道了xiaom这个名字想在列表中找它的分数,怎样获得指向xiaom 100的iter才能读取它的分数值。
我知道了xiaom这个名字,我想把它从列表中删除怎么做呢?

|
/* 把名字和分数组合成结构体,方便你用指针操作 */
typedef struct
{
gchar *name;
gint   score;
}
Student;

gint i = 0;
GtkListStore *model;
GtkTreeIter iter;

array = g_array_sized_new (FALSE, FALSE, sizeof (Student), 1);

/* create list store */
model = gtk_list_store_new (NUM_ITEM_COLUMNS, G_TYPE_INT, G_TYPE_STRING,
                              G_TYPE_INT, G_TYPE_BOOLEAN);

/* 想通过名字获取分数的话,你需要得到array和i,当然,你已经知道名字了 */
for (i = 0; i len; i++)
{
gtk_list_store_append (model, &iter);
/* 这里是设置,获取的原理是一样的 */
gtk_list_store_set (model, &iter,
  g_array_index (array, Student, i).name,
  g_array_index (array, Student, i).score,
  -1);
}

/* 
* 关于删除也一样,需要知道iter,GTK只有两种删除,
* 一个是删除全部,另一个是删除一行
*/

/* iter要和tree配合,我这里没写 */
if (gtk_tree_selection_get_selected (selection, NULL, &iter)){
gtk_list_store_remove (GTK_LIST_STORE (model), &iter);
}

临时写的,不全之处,楼主自行补齐

|
并非是遍历,下面两个GTK的函数,第一个删除一行,第二个删除全部
/* Removes the given row from the list store. After being removed, iter is set to be the next valid row, or invalidated if it pointed to the last row in list_store */
gboolean gtk_list_store_remove(GtkListStore *list_store, GtkTreeIter *iter);

/* Removes all rows from the list store */
void gtk_list_store_clear(GtkListStore *list_store);

|
我是用鼠标选择的,如果你要遍历当然不是不可以

    
 
 

您可能感兴趣的文章:

  • gtk编程问题,如何在一个线程中向gtk控件发送一个expose_event消息
  • GTK+中关于改变控件颜色及字体的问题
  • 请问在gtk中怎么改变控件大小?
  • GTK中如何在界面上切换几组控件?
  • 一个线程函数如何取得GTK界面的所有控件指针?
  • GTK 图像控件显示问题
  • 获取GTK控件的XWINDOW ID
  • 求助:关于gtk的entry控件的问题
  • 用GTK+怎么让treeview控件带上背景图片?哪位高人给个思路?
  • 英文环境下,如何使gtk控件显示中文
  • 请教Solaris下怎样才能正确显示gtk程序中控件上的中文??
  • gtk编程,如何取得当前焦点在哪个控件上
  • 请教 gtk编程,nootbook控件切换标签时信号量处理的问题
  • 100分求助:GTK notebook控件切换页面失灵!!!!1
  • 如何让GTK+ 的控件响应 mouse move事件?
  • 关于GTK表格控件中sprintf函数的一个问题
  • 【求助】 在 GTK+ 中如何设置控件的字体样式?
  • 请问,用 gtk+ 怎么实现类似 windows 下列表视图+复选控件 的功能?
  •  
    本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
    本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。












  • 相关文章推荐
  • 【GTK】 关于 TreeView -- 如何将一行显示加粗?
  • 关于gtk的目录问题,我的目录是 gtk-2.0/gtk/gtk.h ??
  • Redhat linux9.0 下Gtk+编程的#include <gtk/gtk.h>问题
  • 【重要】gtk+ 编译gtk+的问题,不同于一般gtk的搭建--1000分,问题解决了,开号给分,决不食言!大家都来看看
  • gtk 和 gtk+ 有什么区别?
  • centos5.4中安装gtk时,yum库最新版是gtk2.10,如何更新yum库安装gtk2.12
  • 我使用GTK+2.0写界面程序时,怎么找不到gtk.h文件?
  • GTK+ gtk_tree问题
  • gtk for win 和 gtk for linux 下的程序问题?
  • GTK窗口前端显示及GTK窗口闪烁
  • 用GTK开发的程序如何在没有GTK动态连接库的Linux里运行?
  • 【GTK】GTK中有没有这个widget?
  • 我想学习GTK+2.0,请问如何准备GTK编程环境???
  • [GTK] gtk最小化问题与恢复问题
  • 【gtk+】初学gtk+,请教一个问题
  • 【gtk】关于gtk布局问题
  • 本人刚学gtk编程,留下油箱,欢迎喜欢gtk编程的朋友和我交流啊!!!!
  • 大家好,想知道gtk与gtk+有什么区别?
  • 关于GTK中gtk_widget_hide()的问题
  • gtk中如何获取gtk_text_view中的输入内容?
  • GTK+中类似gtk_hbox_new这样的给构件分配内存的函数 为什么不用手动释放?


  • 站内导航:


    特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

    ©2012-2021,