我做了一個3DMAX的管理幫助軟件。 程序中需要顯示一些資源圖片。 少量的還好。如果多了顯示未完成之前就會卡主。
使用了QT的線程功能。 但是添加到了40多個顯示效率還是感覺有問題。
qt有沒有什么好的方法能夠提升界面顯示的效率???
Qt又不像是MFC。。支持非主線程控制界面。。哎
現在每一個圖片位置都是一個QWidget方式存放的。 使用的布局是網格布局。
8 个解决方案
一、這種方式用QListWidget就好了啊。
二、自己定義QWidget放進去布局,是很慢的
要不不要布局,自己算位置,而且根據滾動位置來顯示該顯示的
對圖片沒什么操作不需要用QWidget,用QLabel就行
其他方式按樓上說的就行
有個黑科技,設置圖片不要設置QPixmap一類的,用樣式表border-image:設置圖片或許可以節省資源……
可以嘗試,每個圖片的widget與圖片加載的函數分開,
widget僅僅用來為圖片占位置,所有圖片的加載放在單獨的線程中,
在線程中向界面中的widget上面推送圖片數據。
用QItemDelegate和QListView,QListView設置為setViewMode(QListView::IconMode)。然后自己在delegate中paint,這樣只有顯示的時候才去加載顯示。不要用QWidget布局什么的,效率低。
qtconcurrent 就有現成的例子 為啥不看呢?