分页: 1 / 2
GTK怎样根据值找到列表控件中指定的一行?
发表于 : 2012-12-20 10:59
由 R-man
GtkListStore可以插入一行一行的数据,可是我现在想根据一行的第一列数据的值找到这一行数据。找到它的指针。
比如有一下一个列表
名字 分数
chao 60
xiaom 100
defei 90
我知道了xiaom这个名字想在列表中找它的分数,怎样获得指向xiaom 100的iter才能读取它的分数值?
我知道了xiaom这个名字,我想把它从列表中删除怎么做呢?
怎样查找指定值在列表中的位置呢?
难道要自己遍历吗?
Re: GTK怎样根据值找到列表控件中指定的一行?
发表于 : 2012-12-20 11:17
由 zhw2101024
这种问题为什么不用<key,value>这样的结构呢,gtk应该可以用这样的结构做数据源吧。只是猜的,反正Qt是可以这样做的,数据跟界面可以完全分开,数据变化之后界面实时更新。
Re: GTK怎样根据值找到列表控件中指定的一行?
发表于 : 2012-12-20 12:18
由 R-man
zhw2101024 写了:这种问题为什么不用<key,value>这样的结构呢,gtk应该可以用这样的结构做数据源吧。只是猜的,反正Qt是可以这样做的,数据跟界面可以完全分开,数据变化之后界面实时更新。
GTK 的列表是MVC模式的。就是没有找到<key.value>
MVC数据和数据显示是分开的。
Re: GTK怎样根据值找到列表控件中指定的一行?
发表于 : 2012-12-20 13:40
由 eexpress
GtkListStore 上次也搞晕了。似乎不能根据单独的数字/字符串(结果)去定位项目。
get_selected_items没有反推的函数。
你可以去stackoverflow问问。
Re: GTK怎样根据值找到列表控件中指定的一行?
发表于 : 2012-12-20 13:42
由 zhw2101024
R-man 写了:zhw2101024 写了:这种问题为什么不用<key,value>这样的结构呢,gtk应该可以用这样的结构做数据源吧。只是猜的,反正Qt是可以这样做的,数据跟界面可以完全分开,数据变化之后界面实时更新。
GTK 的列表是MVC模式的。就是没有找到<key.value>
MVC数据和数据显示是分开的。
如果查找用的比较多的话,可以考虑哈希表,网上有很多C语言实现哈希表的代码,或者标准库函数里面找找有没有哈希表的,没有谁逼着你非得用GTK的函数。使用C语言一个很大的好处是可以非常方便的添加自己的算法。
Re: GTK怎样根据值找到列表控件中指定的一行?
发表于 : 2012-12-20 13:46
由 eexpress
zhw2101024, 当你使用控件的时候,尤其iconview的时候,别想有另类的数据结构可以代替了。
Re: GTK怎样根据值找到列表控件中指定的一行?
发表于 : 2012-12-20 14:07
由 zhw2101024
eexpress 写了:zhw2101024, 当你使用控件的时候,尤其iconview的时候,别想有另类的数据结构可以代替了。
学习了,没用过GTK,就用过QT。有些QT里的东西也不好弄,比如日历控件很难自定义,当时头疼了好久。
Re: GTK怎样根据值找到列表控件中指定的一行?
发表于 : 2012-12-20 14:08
由 eexpress
日历控件,我一直有继承出一个新控件的冲动。。
的确。
Re: GTK怎样根据值找到列表控件中指定的一行?
发表于 : 2012-12-20 14:35
由 supercatexpert
自己实现一个GtkTreeModel的类,俺就是这么做的。
否则乃就需要遍历来寻找了
Re: GTK怎样根据值找到列表控件中指定的一行?
发表于 : 2012-12-20 14:42
由 eexpress
自己实现啊。最无奈的方法了。看到过一些自己实现iconview的。
遍历也不能对item设置selected的状态吧。
Re: GTK怎样根据值找到列表控件中指定的一行?
发表于 : 2012-12-20 14:46
由 zhw2101024
我在Qt很少用Widget的,自己用Model实现的居多,感觉自由一点。
Re: GTK怎样根据值找到列表控件中指定的一行?
发表于 : 2012-12-20 14:50
由 R-man
supercatexpert 写了:自己实现一个GtkTreeModel的类,俺就是这么做的。
否则乃就需要遍历来寻找了
这个压力好大,不知的它的类是怎么实现的,没看过源码
Re: GTK怎样根据值找到列表控件中指定的一行?
发表于 : 2012-12-20 15:06
由 zhw2101024
R-man 写了:supercatexpert 写了:自己实现一个GtkTreeModel的类,俺就是这么做的。
否则乃就需要遍历来寻找了
这个压力好大,不知的它的类是怎么实现的,没看过源码
不知道文档里有没有相关的内容,先别急着看源码。GtkTreeModel应该有扩展的接口。
Re: GTK怎样根据值找到列表控件中指定的一行?
发表于 : 2012-12-20 15:12
由 supercatexpert
GtkTreeModel本来就不是一个类,而是 接口
可以参考GtkListStore来写,它是实现了GtkTreeModel接口的一个类
Re: GTK怎样根据值找到列表控件中指定的一行?
发表于 : 2012-12-21 9:07
由 R-man
supercatexpert 写了:GtkTreeModel本来就不是一个类,而是 接口
可以参考GtkListStore来写,它是实现了GtkTreeModel接口的一个类
我正好用listStore啊,GTK用C实现面向对象,搞的我不知到怎么按照它的样子实现类和继承了