Qt之实现列表无限加载
2017-11-14 11:20
1761 查看
概念介绍
无限加载与瀑布流的结合在Web前端开发中的效果非常新颖,对于网页内容具备较好的表现形式。无限加载并没有一次性将内容全部加载进来,而是通过监听滚动条事件来刷新内容的。当用户往下拖动滚动条或使用鼠标滚轮的时候,页面会自动加载剩余的内容。如下:![](https://oscdn.geek-share.com/Uploads/Images/Content/202004/02/f1449d806f346fc502fecc9ad013c4bd.png)
简约而不简单,正是这种别出心裁,突破常规的设计才能得到用户的青睐……
实现思路
在前端开发可以使用一些jQuery插件实现这种效果,后台只需要准备好数据就行了。在Qt中如何给列表组件(QListWidget,QTreeWidget, QTableWidget)或试图(QListView, QTreeView, QTableView)添加这样的效果呢?上面的无限加载的核心原理其实就是使用javascript侦听浏览器的滚动条事件。那么在Qt里面这样做就简单了。我们知道Qt中有一个基类叫做QAbstractScrollArea,它是一个代表可滚动区域的抽象基类。因此,这个类中有许多和滚动条操作相关的方法。QAbstractScrollArea恰好又是Q*View的父类,这正好为我们提供了操作滚动条的机会。新建一个基于窗体的Qt应用程序工程,并从QListWIdget派生出一个子类:MListWidget。为什么呢?因为我们打算对鼠标滚轮事件作出一点点不一样的动作:当滚动条滚动的时候在主窗口的lineEdit中更新滚动条的当前位置;当滚动条滚到最底端的时候发送一个信号,以此更新ListWidget中的数据内容。
接下来是主窗体的实现:
实际效果
鼠标滚动到底部的时候,每次插入5条数据。![](https://oscdn.geek-share.com/Uploads/Images/Content/202004/02/224dfabc9045d2eacb53be0178263fda.gif)
Qt-vs-addin的小问题
使用Visual Studio进行Qt开发的时候,需要安装一个插件。然而有时候这个插件的一些工具却莫名其妙的失效:![](https://oscdn.geek-share.com/Uploads/Images/Content/202004/02/89fff23b44f4c4920f2c65a635e71532.png)
![](https://oscdn.geek-share.com/Uploads/Images/Content/202004/02/44c4036a0e21dc749a1fc01a3a7d0d61.png)
其中qt5appwrapper.exe用于编辑Qt工程中的UI文件,也就是Qt Designer;qt5rceditor.exe则用于编辑Qt资源文件。此时在VS中却无法正常打开,并报如上错误。具体的原因不知道是什么,修复的方法如下:
对工程中的*.ui文件或*.qrc文件右键,选择“打开方式...”,弹出如下对话框,并点击“添加...”按钮,选择qt-vs-addin的安装目录,找到上述的两个可执行文件:
![](https://oscdn.geek-share.com/Uploads/Images/Content/202004/02/21995cbaa75d59e296a829664403cb4e.png)
![](https://oscdn.geek-share.com/Uploads/Images/Content/202004/02/ba6fe2a1220fd0f287eff552218bd730.png)
至此,添加完毕。记得将新添加的这个程序设置为默认值,也就是默认的打开工具。
参考
瀑布流与无限加载的结合案例:http://down.admin5.com/demo/code_pop/18/745/原文链接:http://www.cnblogs.com/csuftzzk/p/qt_infinitescroll.html
相关文章推荐
- Qt实现小功能之列表无限加载
- Qt实现小功能之列表无限加载
- Qt实现小功能之列表无限加载(创意很不错:监听滚动条事件,到底部的时候再new QListWidgetItem)
- Qt实现小功能之列表无限加载(创意很不错:监听滚动条事件,到底部的时候再new QListWidgetItem)
- Qt实现小功能之列表无限加载(创意很不错:监听滚动条事件,到底部的时候再new QListWidgetItem)
- Vue中实现一个无限加载列表
- 微信小程序-解析JSON,实现列表无限加载
- Ajax实现列表无限加载和二级下拉选项效果
- Glide结合Recyclerview(也适用于Listview)实现列表滑动的时候图片不加载,滑动停止的时候加载(已修正Listview部分以及排版)
- Qt5.10 用基础控件实现下拉列表菜单,可以展开多级菜单
- VS2012基于QT5.1自定接口及插件并实现动态加载
- Qt之实现好友列表
- QT 之QTreeWidget实现好友列表
- ViewPager+Fragment实现无限加载
- jQuery+PHP+ajax实现微博加载更多内容列表功能
- Qt之实现好友列表
- qt之qml简单示例并加载到C++程序中,视图、场景、项、撤消、重做的实现
- js + jquery 实现无限加载页面的分页(类似京东手机版)
- RecyclerView下拉刷新、上拉加载更多以及复杂列表布局的实现
- Javascript 生成无限下拉列表实现代码