【问题标题】:Qt List Widget dynamic content loading when scroll滚动时Qt List Widget动态内容加载
【发布时间】:2013-07-18 16:41:48
【问题描述】:

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

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

干杯,

【问题讨论】:

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


    【解决方案1】:

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

    【讨论】:

    • 嗨佩佩。谢谢你的回答,我会在下周测试它,我会再次给你发短信。周末愉快,
    • 它只适用于列表的末尾而不是列表的开头(只是向下滚动而不是向上滚动)。你对向上滚动有什么想法?
    【解决方案2】:

    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!!!";
    }
    

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

    【讨论】:

      猜你喜欢
      • 2015-08-13
      • 2019-03-18
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-06-14
      • 2014-02-23
      • 1970-01-01
      相关资源
      最近更新 更多