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

软件和网站开发以及相关技术探讨
回复
清风两袖装
帖子: 5
注册时间: 2015-04-22 9:47
系统: ubuntu 14.10

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

#1

帖子 清风两袖装 » 2015-04-25 14:14

我的item会占据整个页面,每个页面是一个Qimage,由于加载的一本书我用的Integers as Models,也就是页面数量,但是当我对页面放大时需要重新从文件读取加载页面(这样才不会因为直接放大变模糊),然而我是预加载了后面的5页,当我改变scale(用于提取页面时的参数,默认1)时已经被预加载了的页面不会放大,后面加载的会放大。
总结下:就是已经加载了的item我没办法去操作他们甚至刷新下。如果用Qabstractitemmodel的话用reset会跳回Listview第一页~~所以求大神指导指导,不甚感激
头像
astolia
论坛版主
帖子: 6396
注册时间: 2008-09-18 13:11

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

#2

帖子 astolia » 2015-04-25 21:57

描述的不是很清楚,又没有具体的实现代码。你直接定位到当前页对应的QImage,让它重新载入图片不就行了?
清风两袖装
帖子: 5
注册时间: 2015-04-22 9:47
系统: ubuntu 14.10

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

#3

帖子 清风两袖装 » 2015-04-25 22:07

astolia 写了:描述的不是很清楚,又没有具体的实现代码。你直接定位到当前页对应的QImage,让它重新载入图片不就行了?
恩,这个可以做到,关键是操作是已经加载了的图片都要进行放大或缩小,但是只能放大一个,其他已经加载了的没办法重新加载,如果全部重新加载的话就会返回到第一页,我需要连续的放大,所以不能reset。
头像
astolia
论坛版主
帖子: 6396
注册时间: 2008-09-18 13:11

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

#4

帖子 astolia » 2015-04-25 22:27

看来脱离了具体代码我们说不到一块儿去。我不知道你怎么搞成了“只能放大一个,其他已经加载了的没办法重新加载”这种情况的。就算要reset,reset之后重新设置一下当前页也可以啊
ubuntu-man
帖子: 30
注册时间: 2015-01-04 11:14
系统: Ubuntu OS
联系:

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

#5

帖子 ubuntu-man » 2015-04-26 9:21

你可以使用ListModel中的

set(int index, jsobject dict)

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

你也可以在reset之后重新设置ListView的currentIndex来改变显示的位置而不至于在"0"的位置
ubuntu-man
帖子: 30
注册时间: 2015-01-04 11:14
系统: Ubuntu OS
联系:

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

#6

帖子 ubuntu-man » 2015-04-26 9:24

使用ListView的:
setProperty(int index, string property, variant value)

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

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