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

天津商业网站建设ui设计灵感网站

天津商业网站建设,ui设计灵感网站,设计图软件,永康网站网站建设Fetch More Example这个例子说明了如何在视图模型上添加记录。 这个例子由一个对话框组成#xff0c;在Directory的输入框中#xff0c;可输入路径信息。应用程序会载入路径信息的文件信息等。不需要按回车键就能搜索。 当有大量数据时#xff0c;需要对视图模型进行批量增…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, fileCountitemsToFetch-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.dnsts.com.cn/news/84857.html

相关文章:

  • 做网站需要apache动易网站模板制作方法
  • 郑州做订货网站当前最新域名
  • 中国化工网网站建设建议推广免费网站
  • 郑州同济医院seo营销技巧培训班
  • 网站改版设计方案网络设计方案书主要包括哪些内容
  • 做二手车的网站wifi小程序怎么赚钱
  • 建设一个网站需要多长时间wordpress安装程序
  • 网站自建设需要买什么时候开始最新足球赛事
  • 苏州市建设交易中心网站首页怎样用wordpress建站
  • 榆林网站建设企业管理培训课程机构
  • 网站平台建设工作总结电商运营的概念
  • 做的好的茶叶网站wordpress 评论管理
  • 网站开发公司比较有名饰品设计网站推荐
  • 响应式相册网站模板下载网站管理的含义
  • 给境外网站网站做代理做别人一样的网站模板
  • 涉密资质 网站建设深圳设计公司
  • 利用店铺网站做灰色优化隧道建设网站怎么了
  • 网站安全监测创业园区网站建设
  • 苏州品牌网站制作公司网站ppt缩略图
  • 靓号网站开发如何开发一个软件
  • 创意家居网站建设与管理做微信支付的网站多少钱
  • iis默认网站 没有属性免费申请电信卡
  • 张家港做网站哪家好wordpress模板游戏推广
  • 网站备案表格样本免费织梦导航网站模板下载
  • 买一个网站多少钱12306网站学生做
  • 哎吆嗨网站建设wordpress另一更新正在进行
  • 建设网站的宣传册
  • 自己做的网站可以百度推广吗深圳公司网站设
  • 视频网站做视频节目赚钱吗广告在线设计
  • 上海市工程建设质量管理协会网站衡阳网站排名优化费用