4

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

有谁知道哪个是最好的方法?

干杯,

4

2 回答 2

2

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

于 2013-07-19T12:16:13.577 回答
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!!!";
}

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

于 2018-01-30T00:38:39.783 回答