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

网站建设与推广培训学校wordpress readium

网站建设与推广培训学校,wordpress readium,微信小程序怎么制作免费,wordpress 分享微信众所周知#xff0c;Qt提供了一套Model/View框架供开发者使用#xff0c;Model用来提供数据#xff0c; View则用来提供视觉层的显示。实际上这是一套遵循MVC设计模式的GUI框架#xff0c;因为Qt还提供了默认的Delegate作为Controller来作为控制器。 MVC的好处这里就不多说…众所周知Qt提供了一套Model/View框架供开发者使用Model用来提供数据 View则用来提供视觉层的显示。实际上这是一套遵循MVC设计模式的GUI框架因为Qt还提供了默认的Delegate作为Controller来作为控制器。 MVC的好处这里就不多说了为了开发者使用方便Qt还提供了基于项Item的Model/View实现----QXxxWidgetQTableWidget、QListWidget等对于一些简单的应用场景这已经足够了并且使用起来非常方便。这里我们简单介绍下如何使用自定义的数据模型来满足各种花式的要求。 1. 选择合适的Model继承 1.1 标准数据模型 Qt实现了4类标准数据模型供我们在不同的场景下使用 QStringListModel存储字符串列表。QStandardItemModel存储树状结构的任意数据。QFileSystemModel存储本地文件系统上的文件和目录信息。QSqlQueryModel、QSqlRelationalTableModel、QSqlTableModel存储关系型数据库中的数据。 如果使用情况和上述情况之一比较相似则可以考虑继承对应的模型类并重新实现少数虚函数。 1.2 抽象数据模型 抽象数据模型有3类 QAbstractItemModel项模型这是所有数据模型的基类。QAbstractListModel列表模型结合QListView使用最合适。QAbstractTableModel表模型结合QTableView使用最合适。 2. 继承抽象模型 Qt官方提供了完善的文档来帮助开发者来自定义模型类。根据官网子类化模型需要开发者实现的功能即需要重新实现的虚函数按功能来分可以分为三类 项数据处理这又可以分为三类----只读访问、可编辑、调整大小。导航和下标创建。拖拽和MIME类型处理。 我们只需要按照自己的功能需求来实现其中的一些虚函数。 3. 实现一个自定义模型 这里我们来实现一个自定义模型并在QTableView中使用它因此我们选择继承QAbstractTableModel这样我们需要做的改动最少。但使用QTableModel并不意味着我们的数据结构就是Table状的例如下面的例子中我们根本不需要内部数据结构。 下面我们要实现这样一个数据模型 内部不存储数据结构。表中的每一个单元获得的数据是整型并且值为列下标的平方。模型中的数据为只读。 3.1 实现CustomeModel 该模型继承自QAbstractTableModel作为只读模型我们只需要实现以下几个虚函数 virtual Qt::ItemFlags flags(const QModelIndex index) const; virtual QVariant data(const QModelIndex index, int role) const; virtual QVariant headerData(int section, Qt::Orientation orientation, int role) const; virtual int rowCount(const QModelIndex parent) const; virtual int columnCount(const QModelIndex parent) const; CPP 复制 全屏 data()函数与项数据有关这里数据有好几种角色role最基本的就是Qt::DisplayRole这里为了实现居中效果我们还处理了Qt::TextAlignmentRole角色 QVariant MyTableModel::data(const QModelIndex index, int role) const {if (role Qt::DisplayRole) {return index.column() * index.column();}if (role Qt::TextAlignmentRole) {return Qt::AlignCenter;}return QVariant(); }headerData()函数提供表头数据包括两个方向垂直、水平的表头。同样这里的数据也有好几种角色我们只处理Qt::DisplayRole QVariant MyTableModel::headerData(int section, Qt::Orientation orientation, int role) const {if (orientation Qt::Vertical) {if (role Qt::DisplayRole) return QVariant(row: QString::number(section));else return QVariant();}if (orientation Qt::Horizontal) {if (role Qt::DisplayRole) return QVariant(column: QString::number(section));else return QVariant();} }rowCount()和columnCount()返回数据模父下标QModelIndex的行和列数量这里我们要判别下标是否有效因为整个表模型的父下标为无效下标我们返回表模型的行列数量当下标有效时我们返回的是父下标指向处的子表的行列 // if parent is invalid, return the whole table row count! // else return the children row count of the parent int MyTableModel::rowCount(const QModelIndex parent) const {if (parent.isValid())return 0;elsereturn 10; }3.2 运行结果
http://www.w-s-a.com/news/553881/

相关文章:

  • 同性做视频网站网站怎么添加栏目
  • 新余网站设计seo自学网站
  • 新乡个人网站建设价格wordpress数据插件
  • 你是网站设计有限公司的项目经理网站推广的重要性
  • 网站定制开发怎么写泸州设计公司有哪些
  • 上海网站建设zj kt迅速编程做网站
  • 郑州服装 网站建设网站栏目合理性
  • 平面设计在线网站最新汽油价格调整最新消息
  • 刷单网站建设wordpress缩略图 裁剪
  • 视差 网站泰州公司做网站
  • 广州网站优化系统怎么做淘客网站
  • 类似凡科互动的网站wordpress网站下载
  • 临沂网站制作公司安卓app开发实例教程
  • 泰州做网站 泰公网络科技公司网站升级中html
  • 如何做授权网站网站设计心得
  • 网站排名快速上升wordpress自动标签页
  • 做的好的手机网站有哪些万网域名交易
  • 网站怎么做漂亮点做陶瓷的公司网站
  • 软件开发设计制作网站下载自己怎么做视频收费网站
  • 江苏省建设安全协会网站天津网站建设哪家公司好
  • 资源类网站怎么做的网站上线准备工作
  • 长沙专业网站建设怎么做企业建站公司服务
  • 肇庆市有限公司网站建设手机直接看的网站有哪些
  • 织梦修改网站后备份英语作文模板高中
  • 个人网站域名用什么好上海公司拍沪牌需要什么条件
  • 网站建设 保密做网站赚钱交税
  • 食品建设网站前的市场分析进出口网站贸易平台有哪些
  • php商城网站建设个人网站用什么服务器
  • 如何做好品牌网站建设方案网站开发的学习
  • 网站开发 管理方案wordpress怎么搭建微博