如何提高qt界面的显示效率。


我做了一个3DMAX的管理帮助软件。 程序中需要显示一些资源图片。 少量的还好。如果多了显示未完成之前就会卡主。 
使用了QT的线程功能。 但是添加到了40多个显示效率还是感觉有问题。
qt有没有什么好的方法能够提升界面显示的效率???
Qt又不像是MFC。。支持非主线程控制界面。。哎

现在每一个图片位置都是一个QWidget方式存放的。 使用的布局是网格布局。

8 个解决方案

#1


一、这种方式用QListWidget就好了啊。

二、自己定义QWidget放进去布局,是很慢的
要不不要布局,自己算位置,而且根据滚动位置来显示该显示的

#2


引用 1 楼 u013466477 的回复:
一、这种方式用QListWidget就好了啊。

二、自己定义QWidget放进去布局,是很慢的
要不不要布局,自己算位置,而且根据滚动位置来显示该显示的


一,QListWidget 貌似没法实现我所需要的样式。。

二,通过滚动条 自己绘画么。。。。。

#3


 添加滚动条 QScrollArea 

#4


对图片没什么操作不需要用QWidget,用QLabel就行
其他方式按楼上说的就行

有个黑科技,设置图片不要设置QPixmap一类的,用样式表border-image:设置图片或许可以节省资源……

#5


可以尝试,每个图片的widget与图片加载的函数分开,
widget仅仅用来为图片占位置,所有图片的加载放在单独的线程中,
在线程中向界面中的widget上面推送图片数据。

#6


用QItemDelegate和QListView,QListView设置为setViewMode(QListView::IconMode)。然后自己在delegate中paint,这样只有显示的时候才去加载显示。不要用QWidget布局什么的,效率低。

#7


qtconcurrent 就有现成的例子 为啥不看呢?

#8


引用 5 楼 u012199908 的回复:
可以尝试,每个图片的widget与图片加载的函数分开,
widget仅仅用来为图片占位置,所有图片的加载放在单独的线程中,
在线程中向界面中的widget上面推送图片数据。


目前使用的你这方法。可行。。
智能推荐

注意!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系我们删除。



 
© 2014-2019 ITdaan.com 粤ICP备14056181号  

赞助商广告