• 11998阅读
  • 8回复

QListView 如何随 QStringListModel 内容的改变而刷新? [复制链接]

上一主题 下一主题
离线bborn
 

只看楼主 倒序阅读 楼主  发表于: 2009-03-13
— 本帖被 XChinux 从 General Qt Programming 移动到本区(2011-01-02) —
QStringListModel 里是个 QStringList
QListView 连接到 QStringListModel

我现在想在改变 QStringList 的同时, QListView 上的显示也同步更新
理应说应该很简单的
但是怎么都不成功

请教各位 该怎么做
离线wvins
只看该作者 1楼 发表于: 2009-03-13
你想要什么改变呢?

经我最近的学习有以下几个功能实现:
选择--使用QItemSelectionModel
排序和过滤--使用QSortFilterProxyModel
删除和修改--如果是自己继承实现一个Model的话,需要调用beginInsertRows,enInsertRows,XX,XX
                         QStringListModel应该已经实现了,可以具体找找Model提供的方法。
修改其中的项--这个应该是最简单的,不过似乎有点问题,暂时没琢磨出来。

-------------
高手补充
离线bborn

只看该作者 2楼 发表于: 2009-03-13
我的意思就是在程序里用代码 在qstringlist 中加入了一个新的string

然后 listview 就能够显示出来新的string
离线wvins
只看该作者 3楼 发表于: 2009-03-13
貌似QStringListModel没有提供方法,提供两个方案:
一、继承QStringListModel,并提供添加删除方法。
    (其中调用beginInsertRows,endInsertRows方法)
二、调用QStringListModel的insertRows添加数据,然后通过QStringList编辑新添加的数据。
三、修改了QStringList以后,调用QListView的reset方法,重置一下Model
------------------
第一种方案是我推荐的,也是我经常使用的
方案二没有经过测试,你可以试一下。
方案三是最次的,可以实现你的要求,但不推荐使用
------------------
数据变更 要被QListView感知的话,必须通过Model来实现。
离线bborn

只看该作者 4楼 发表于: 2009-03-14
请教一下
方法 1   在begin和end之间, 我应该插入新的字符串到stringlist中, 怎么得到QStringListModel的stringlist并插入? 它有一个这样的函数 QStringList stringList ()  但是得到后插入不起作用

方法 2   能给个代码看看吗   不太明白是怎么用的

谢谢
离线q3344520love
只看该作者 5楼 发表于: 2009-03-14
怎么会哟
















谋三国最新章节  
离线bborn

只看该作者 6楼 发表于: 2009-03-15
看qt的源码 解决了
http://bborn.cn/blog/2009/03/qlistview/


源码注释写的比文档都清楚 哎

qt的思维真不习惯
[ 此帖被bborn在2009-03-15 10:36重新编辑 ]
离线wvins
只看该作者 7楼 发表于: 2009-03-15
恭喜
离线mattatlantis

只看该作者 8楼 发表于: 2009-04-28
請問可以舉例一下嗎?
快速回复
限100 字节
 
上一个 下一个