Qt List Widget滚动时加载动态内容

时间:2013-07-19 11:46:16

标签: c++ qt user-interface scroll qwidget

我想为Qt(而不是QML)创建一个小部件,它派生自,例如,QListWidget,并在向上/向下滚动时动态加载内容,就像大多数Android / iOS应用程序一样。

有人知道哪种方法最好吗?

干杯,

2 个答案:

答案 0 :(得分:1)

动态加载内容并不意味着它是无限的。为此,只需实现模型的fetchMore()和canFetchMore()方法。

答案 1 :(得分:0)

fetchMore和canFetchMore非常灵活,但它有点掩盖了事情的运作方式。

更直接的方法是你可以在你的子类QListWidget中使用这个函数。

void MyQListWidgetClass::scrollContentsBy(int dx, int dy)
{
    QListWidget::scrollContentsBy(dx, dy);

    bool scrolled_top = false;
    if(this->verticalScrollBar()->value() == this->verticalScrollBar()->minimum())
        scrolled_top = true;

    bool scrolled_bottom = false;
    if(this->verticalScrollBar()->value() == this->verticalScrollBar()->maximum())
        scrolled_bottom = true;


    if(scrolled_top)
        qDebug() << "FIRE FIRE FIRE FIRE!!!";

    if(scrolled_bottom)
        qDebug() << "WATER WATER WATER WATER!!!";
}

当然,如果你想添加更多填充,你可以从最小/最大值中减去一些。