动态地将数据添加到QScrollArea

时间:2016-09-23 19:36:25

标签: qt viewport qscrollarea qstandarditemmodel qlayout

我有一个QStandardItemModel,它包含我的数据,大约有5000行。我想分批将数据插入QScrollArea。如果我完全插入它,性能变得非常慢。因此,我希望在QScrollArea中的视口需要时添加数据。起初我已经为QScrollArea加载了500行。当用户滚动时,我希望将更多数据添加到QScrollArea的视口中。

有没有人知道如何解决这个问题?

1 个答案:

答案 0 :(得分:0)

QScrollArea(http://doc.qt.io/qt-4.8/qscrollarea.html)继承了函数

 QScrollBar * QAbstractScrollArea::verticalScrollBar() const

所以你可以像这样获得ScrollBar

QScrollBar* scroll = ui->scrollarea->verticalScrollBar();

并将值连接到插槽

QObject::connect( scroll , SIGNAL(valueChanged(int)) ,this , SLOT(addvalues(int)) );

在addvalues插槽中,您可以检查滚动条位置并根据需要添加值。