分页: 1 / 1

ListView对已经构建了的item进行操作的问题

发表于 : 2015-04-25 14:14
清风两袖装
我的item会占据整个页面,每个页面是一个Qimage,由于加载的一本书我用的Integers as Models,也就是页面数量,但是当我对页面放大时需要重新从文件读取加载页面(这样才不会因为直接放大变模糊),然而我是预加载了后面的5页,当我改变scale(用于提取页面时的参数,默认1)时已经被预加载了的页面不会放大,后面加载的会放大。
总结下:就是已经加载了的item我没办法去操作他们甚至刷新下。如果用Qabstractitemmodel的话用reset会跳回Listview第一页~~所以求大神指导指导,不甚感激

Re: ListView对已经构建了的item进行操作的问题

发表于 : 2015-04-25 21:57
astolia
描述的不是很清楚,又没有具体的实现代码。你直接定位到当前页对应的QImage,让它重新载入图片不就行了?

Re: ListView对已经构建了的item进行操作的问题

发表于 : 2015-04-25 22:07
清风两袖装
astolia 写了:描述的不是很清楚,又没有具体的实现代码。你直接定位到当前页对应的QImage,让它重新载入图片不就行了?
恩,这个可以做到,关键是操作是已经加载了的图片都要进行放大或缩小,但是只能放大一个,其他已经加载了的没办法重新加载,如果全部重新加载的话就会返回到第一页,我需要连续的放大,所以不能reset。

Re: ListView对已经构建了的item进行操作的问题

发表于 : 2015-04-25 22:27
astolia
看来脱离了具体代码我们说不到一块儿去。我不知道你怎么搞成了“只能放大一个,其他已经加载了的没办法重新加载”这种情况的。就算要reset,reset之后重新设置一下当前页也可以啊

Re: ListView对已经构建了的item进行操作的问题

发表于 : 2015-04-26 9:21
ubuntu-man
你可以使用ListModel中的

set(int index, jsobject dict)

进行更新。http://doc.qt.io/qt-5/qml-qtqml-models-listmodel.html

你也可以在reset之后重新设置ListView的currentIndex来改变显示的位置而不至于在"0"的位置

Re: ListView对已经构建了的item进行操作的问题

发表于 : 2015-04-26 9:24
ubuntu-man
使用ListView的:
setProperty(int index, string property, variant value)

http://doc.qt.io/qt-5/qml-qtqml-models-listmodel.html

或在reset之后,重新设置ListView的currentIndex。