2014-01-17 37 views
1

任務是在Qt應用程序中顯示一個大型數據集(具有持續的實時更新)。比方說,每行最多有100000行,大約有20個字段。Qt中的大型實時數據集

使用ListView和這樣多的項目顯然導致非常慢的滾動等等。 在C#/ WPF中,當列表只顯示可見項時,我可以使用所謂的「虛擬化」。 Qt中是否有虛擬化列表控件的類比?或者也許還有其他更好的方法可以達到Qt的目標,不是嗎?

+0

模型視圖小部件是爲此構建的 –

+0

查看[cacheBuffer](http://qt-project.org/doc/qt-5.0/qtquick/qml-qtquick2-listview.html#cacheBuffer-道具)屬性 – embert

回答

0

這裏的問題是QListView,它有一些錯誤,它不會回收項目(它會創建所有項目,甚至可見區域外的所有項目),這會導致性能下降。
將其替換爲QTableView應解決問題。你可以調整它,使其在視覺上與列表相似。

+0

其實,我也試過QListView:我從Qt Creator畫廊「Qt Quick Controls」中使用了QTableView,並將項目數量增加到了100'000。滾動變得非常緩慢。 – developer

+1

不,你混合不同的東西,「Qt Quick」是完全不同的問題!只需在你的代碼中用'QTableView'代替'QListView',它不使用「qt quick」。 –

+1

'QListView'是'QWidget',不是Qt Quick的一部分。 Qt quick是一組新的UI元素。 'QWidget'是創建UI的老方法。 –