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

直播是网站怎么做上海中学数学

直播是网站怎么做,上海中学数学,做的网站 如何在局域网内访问,提升学历图片文章目录 代理模型简单介绍QSortFilterProxyModel类简单介绍排序过滤子类化 代理模型简单介绍 代理模型的作用是可以将一个模型中的数据进行排序或者过滤#xff0c;然后提供给视图进行显示。 如下所示#xff0c;创建一个源模型、一个代理模型#xff0c;界面上创建一个列… 文章目录 代理模型简单介绍QSortFilterProxyModel类简单介绍排序过滤子类化 代理模型简单介绍 代理模型的作用是可以将一个模型中的数据进行排序或者过滤然后提供给视图进行显示。 如下所示创建一个源模型、一个代理模型界面上创建一个列表视图设置代理模型的源模型并设置列表视图的模型为代理模型。 // 源数据模型模型QStringList list;list yafei yafeilinux Qt Qt Creator;QStringListModel *listModel new QStringListModel(list, this);filterModel new QSortFilterProxyModel;// 为代理模型设置源模型filterModel-setSourceModel(listModel);// 列表视图设置数据模型ui-listView-setModel(filterModel);进行过滤时可以调用代理模型的setFilterRegExp()、setFilterRegularExpression()等函数。如下 filterModel-setFilterRegularExpression(ui-lineEdit-text());QSortFilterProxyModel类简单介绍 QSortFilterProxy类支持对另一个模型进行排序和过滤。 代理模型通过将源模型的索引映射到对应新的索引从而转换源模型的结构。对于视图来说这种方法允许对给定的源模型进行重构而不需要对底层数据进行任何转换也不需要在内存中复制数据。 比如要对自定义模型提供的项进行排序和筛选。不进行排序和筛选的情况下用于设置模型和视图的代码如下 QTreeView *treeView new QTreeView(this);MyItemModel *myModel new MyItemModel(this);treeView-setModel(myModel);为MyItemModel添加排序和筛选支持的话需要创建一个QSortFilterProxyModel对象并调用setSourceModel()函数设置源模型在视图上设置代理模型对象如下 QTreeView *treeView new QTreeView(this);MyItemModel *myModel new MyItemModel(this);QSortFilterProxyModel *filterModel new QSortFilterProxyModel;filterModel-setSourceModel(myModel);treeView-setModel(filterModel);如果仅有以上的代码此时视图显示既不会排序也不会筛选上述代码只是提供了排序和筛选功能的支持。还需要调用setSort*和setFilter*开头的函数进行排序和筛选。 代理模型做的任何更改都会应用于源模型。 QSortFilterProxyModel作为源模型的包装器如果需要将源QModelIndexes转换为已经排序或过滤的模型的索引或者反之可以使用mapToSource()、mapFromSource()、mapSelectionToSource()和mapSelectionFromSource()等函数。 默认情况下只要源模型发生更改模型就会动态地对数据进行重新排列和重新筛选。可以通过设置dynamicSortFilter属性更改此行为。 排序 QTreeView和QTableView类具有sortingEnabled属性该属性控制用户是否可以通过单击视图的水平标题对视图进行排序。 设置sortingEnabled属性为true单击标题部分会根据该列对项目进行排序重复单击用户可以在升序和降序之间交替排列。 视图调用模型上的sort()虚函数重新排序模型中的数据。对于自定义模型类可以重新实现**sort()**也可以使用QSortFilterProxyModel来包装自定义的模型因为QSortFilterProxyModel提供了一个通用的sort()函数它对项的setRole()进行操作并识别几种数据类型包括int、QString和QDateTime。 对于层次模型排序递归应用于所有子项。 默认情况下字符串比较区分大小写可以通过设置sortCaseSensityvity属性更改。 自定义的排序行为通过子类化QSortFilterProxyModel并重新实现用于比较项的lessThan()函数来实现。 排序的另一种方法是禁用对视图的排序并将某个顺序强加给用户这是通过显式调用sort()函数来完成的。 当设置参数按列-1排序时将返回到基础源模型的排列顺序。 过滤 除了排序之外QSortFilterProxyModel还可以用于隐藏与某个筛选器不匹配的项。 该筛选器使用QRegExp对象指定并应用于给定列的每个项的filterRole()默认情况下为Qt::DisplayRole。QRegExp对象可用于匹配正则表达式、通配符模式或固定字符串。 如下 filterModel-setFilterRegExp(QRegExp(.png, Qt::CaseInsensitive, QRegExp::FixedString)); // 设置过滤器filterModel-setFilterKeyColumn(1); // 设置过滤器作用的列对于层次模型来说过滤器递归地应用于所有子级。如果父项与筛选器不匹配则不会显示其任何子项。 比较常见的用法是让用户在QLineEdit中指定过滤器的正则表达式、通配符模式或固定字符串并将textChanged()信号连接到setFilterRegularExpression()、setFilterWildcard()或setFilterFixedString()来重新应用过滤器。 对于自定义的过滤行为可以重新实现filterAcceptsRow()和filterAcceptColumn()函数。 如果处理大量的过滤并且必须重复调用invalidFilter()根据模型的实现情况使用reset()可能会更高效。但是需要注意reset()会将代理模型返回到其原始状态从而丢失选择信息并将导致代理模型重新填充。 子类化 由于QSortFilterProxyModel及其子类是从QAbstractItemModel派生的因此关于将正常模型子类化的许多相同建议也适用于代理模型。 另外需要注意的是该类中函数的许多默认实现是为了调用相关源模型中的等效函数而编写的。 对于具有更复杂行为的源模型可能需要覆盖这种简单的代理机制比如如果源模型提供了一个自定义的hasChild()实现那么也应该在代理模型中提供一个。 子类化时可能需要实现一下几个函数 virtual bool filterAcceptsColumn(int source_column, const QModelIndex source_parent) const; virtual bool filterAcceptsRow(int source_row, const QModelIndex source_parent) const; virtual bool lessThan(const QModelIndex source_left, const QModelIndex source_right) const;filterAcceptsColumn()如果给定的source_column和source_parent指示的列中的项应该包含在模型中返回true否则返回false。filterAcceptsRow()如果给定的source_row和source_parent指示的行中的项应该包含在模型中返回true否则返回false。lessThan()如果给定索引source_left引用的项的值小于给定索引source_right引用的项值返回true否则返回false。 注意1使用Qt5通过QRegularExpression类改进了对正则表达式的支持。Qt5以后的版本应考虑弃用QRegExp API使用QRegularExpression API。
http://www.hkea.cn/news/14314387/

相关文章:

  • 个人外贸平台有哪些网站建设优化之优化关键字
  • 温州市城市基础设施建设网站大学生网页设计作品
  • 微信 网站模板手机网站教程
  • 道客网站建设推广小程序wordpress 外贸
  • 新网站建设运营年计划江苏建设部网站
  • 高端定制网站建设wordpress修改搜索框全屏
  • 鞍山网站开发十大小程序开发公司
  • 模拟人生4做游戏下载网站龙岩做网站开发价格
  • 快速建站套餐自适应网站开发
  • 上海优化网站公司哪家好网站建设管理情况说明
  • 大兴企业官网网站建设咨询判断网站
  • 建设的比较好的网站毕业设计做网站哪种好
  • 商务网站模块设计时前台基础设施建设详情页设计收费
  • 中国建设网站上报名塔吊司索工鹤城建设集团网站
  • 网站建立电话wordpress 文章筛选
  • aspnet网站开发实例教程pdf国内最新新闻摘抄30字
  • 手机网站模板带后台镇江网页设计工作室
  • 网站换一个图片怎么做app开发公司找xiala5徵推广
  • 什么网站可以做PS 写论文兼职绍兴做网站公司哪家好
  • 网站建设对接视频做物流的都有哪些网站
  • 商城网站建设运营合同书网站建设和赚钱方法
  • 做卖车网站需要什么手续南通网站建设祥云
  • 北京住房建设官方网站泉州晋江网站建设费用
  • 连锁店管理网站开发找清包工程上什么网
  • 建设银行 成都 招聘网站百度网盘app官网
  • 国外网站加速神器做影视网站违法不
  • 重庆网站制作外包信诺盛世网站
  • 刚做的网站上线后收不到了服装服饰设计网站
  • 做易购网站兴山县铁路建设协调指挥部网站
  • 企业做网站的凭证怎么做重庆百度推广seo