当前位置: 首页 > news >正文

wordpress网站好慢域名icp备案查询

wordpress网站好慢,域名icp备案查询,微信公众平台号申请注册入口,陕西通达工程建设有限公司网站Fetch More Example这个例子说明了如何在视图模型上添加记录。 这个例子由一个对话框组成,在Directory的输入框中,可输入路径信息。应用程序会载入路径信息的文件信息等。不需要按回车键就能搜索。 当有大量数据时,需要对视图模型进行批量增…

Fetch More Example这个例子说明了如何在视图模型上添加记录。

这个例子由一个对话框组成,在Directory的输入框中,可输入路径信息。应用程序会载入路径信息的文件信息等。不需要按回车键就能搜索。

当有大量数据时,需要对视图模型进行批量增加。

此案例,实现了FileListModel类,此类包含了一个视图模型,这个视图模型获取路径下的文件。

下面来看下FileListModel的代码。

FileListModel Class Definition

FileListModel继承了QAbstractListModel并且存储了路径信息。只有视图自己请求添加项时,才会进行添加。

 class FileListModel : public QAbstractListModel{Q_OBJECTpublic:FileListModel(QObject *parent = 0);int rowCount(const QModelIndex &parent = QModelIndex()) const override;QVariant data(const QModelIndex &index, int role = Qt::DisplayRole) const override;signals:void numberPopulated(int number);public slots:void setDirPath(const QString &path);protected:bool canFetchMore(const QModelIndex &parent) const override;void fetchMore(const QModelIndex &parent) override;private:QStringList fileList;int fileCount;};

比较关键的2个函数是fetchMore()和canFetchMore(),这两个函数都是从QAbstractItemModel中继承下来的。当需要新增模型时,这2个函数就会被触发。

setDirPath()函数设置了当前模型的工作目录。当需要批量设置模型时,就会发出numberPopulated()信号。

所有文件条目都放到fileList里面,fileCount统计条目的数量。

FileListModel Class Implementation

首先来看下setDirPath()。

 void FileListModel::setDirPath(const QString &path){QDir dir(path);beginResetModel();fileList = dir.entryList();fileCount = 0;endResetModel();}

使用QDir获取目录内容。当要从模型中移除所有数据时需要通知QAbstractItemModel。

 bool FileListModel::canFetchMore(const QModelIndex & /* index */) const{if (fileCount < fileList.size())return true;elsereturn false;}

当需要更多项时,canFetchMore()函数会被触发。当不需要新增时此函数返回true,否则返回false。fetchMore()函数如下:

 void FileListModel::fetchMore(const QModelIndex & /* index */){int remainder = fileList.size() - fileCount;int itemsToFetch = qMin(100, remainder);if (itemsToFetch <= 0)return;beginInsertRows(QModelIndex(), fileCount, fileCount+itemsToFetch-1);fileCount += itemsToFetch;endInsertRows();emit numberPopulated(itemsToFetch);}

首先获取每一项的数量。beginInsertRow()和endInsertRow()在QAbstractItemModel中插入新行时,必须要调用的,最后emit numberPopulated()用于更新界面。

最后是rowCount()和data()

int FileListModel::rowCount(const QModelIndex & /* parent */) const{return fileCount;}QVariant FileListModel::data(const QModelIndex &index, int role) const{if (!index.isValid())return QVariant();if (index.row() >= fileList.size() || index.row() < 0)return QVariant();if (role == Qt::DisplayRole) {return fileList.at(index.row());} else if (role == Qt::BackgroundRole) {int batch = (index.row() / 100) % 2;if (batch == 0)return qApp->palette().base();elsereturn qApp->palette().alternateBase();}return QVariant();}

rowCount()函数是已经添加了的新行,不是目录中的条目数。

data()函数,从fileList中返回适当的条目。使用不同的背景颜色来区分。

http://www.yayakq.cn/news/29064/

相关文章:

  • 个人网站能做淘宝客吗做新闻类网站还有市场吗
  • 网站添加ico图标十堰网络科技有限公司
  • 搜什么关键词能找到网站网站公司哪家最专业
  • 网站开发 360百科苏州市网站建设培训班
  • 品展示设计网站网站 备案 中国 名字吗
  • 佛山网站建设哪家公司好旅游网站在提高用户体验方面应做哪些工作
  • 网站首页幻灯片代码泰安人才市场招聘网
  • 大连鼎信网站建设公司透明水印logo在线制作
  • 成都网站排名 生客seohtml网页游戏源码
  • 广州自助建站软件自开发网站
  • 网站后台 栏目管理photoshop在线工具
  • 网站制作对公司的作用成都公司建网站
  • 怎么做卡盟网站优化百度搜索
  • wordpress网站插件下载失败域名 网址 网站名称
  • 3免费建站网站网站制作公司多少人
  • 网站程序系统重庆哪些网站推广公司
  • 成都中小企业网站建设win8平板做网站服务器
  • 大连网站制作姚喜运上海摄影网站建设
  • 织梦网站调用工具网站建设现状调查研究
  • 成品网站货源1688在线软件定制开发的发展前景
  • 东莞长安网站制作html简单网页代码课程表
  • 做网站界面设计注意什么招商平台网
  • 构建企业门户网站的方法网站开发语言怎么查
  • 桔子建站官网学校网站建设介绍范文
  • 卡盟怎么网站怎么做wordpress字菜单
  • 艾纳网站建设网站开发4k分辨率
  • 滨海建设局官方网站wordpress博客支持js
  • 网站上动画视频怎么做的私域流量营销
  • 高端网站定制开发设计制作怎么在360做网站
  • 网站做seo必要的结构mvc5 网站开发美學 pdf