如何提高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上面推送圖片數據。


目前使用的你這方法。可行。。

注意!

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



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