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

国内优秀公司网站网络营销策略理论

国内优秀公司网站,网络营销策略理论,奉贤庄行网站建设,做化妆品网站的意义文章目录 Qt 模型视图(二):模型类QAbstractItemModel1.基本概念1.1.模型的基本结构1.2.模型索引1.3.行号和列号1.4.父项1.5.项的角色1.6.总结 Qt 模型视图(二):模型类QAbstractItemModel ​ 模型/视图结构是一种将数据存储和界面展示分离的编程方法。模…

文章目录

  • Qt 模型视图(二):模型类`QAbstractItemModel`
    • 1.基本概念
      • 1.1.模型的基本结构
      • 1.2.模型索引
      • 1.3.行号和列号
      • 1.4.父项
      • 1.5.项的角色
      • 1.6.总结

Qt 模型视图(二):模型类QAbstractItemModel

模型/视图结构是一种将数据存储界面展示分离的编程方法。模型存储数据,视图组件显示模型中的数据,在视图组件里修改的数据会被自动保存到模型里。模型的数据来源可以是内存中的字符串列表或二维表格型数据,也可以是数据库中的数据表,一种模型可以用不同的视图组件来显示数据,所以模型/视图结构是一种高效、灵活的编程结构。

1.基本概念

在模型/视图架构中,模型提供了一个标准接口,视图和委托使用该接口访问数据。在Qt中,标准接口由QAbstractItemModel类定义。无论数据项如何存储在任何底层数据结构中,QAbstractItemModel的所有子类都将数据表示为包含表项的层次结构。视图使用此约定访问模型中的数据项,但它们向用户呈现此信息的方式不受限制。模型还通过信号和插槽机制将任何有关数据更改的信息通知附加的视图。

1.1.模型的基本结构

有3种常见的展示形式,分别是列表模型( list model ),表格模型( table model )和树状模型( tree model )。不管模型的表现形式如何,模型中存储数据的基本单元都是项 (item),每个项有一个行号和一个列号,还有一个父项(parent item)。3个模型都有一个隐藏的根项(root item),列表模型的存储结构就是一列,表格模型的存储结构是规则的二维数组,树状模型的项可以有子项,结构更为复杂一些。
在这里插入图片描述

图 1 模型的3中展示形式

1.2.模型索引

为了确保数据的展示与数据的存储方式分离,模型中引入了模型索引(model index)的概念。通过模型能访问的每个项都有一个模型索引,视图组件和代理都通过模型索引来请求数据。这样只有模型需要知道怎样获取数据,被模型管理的数据可以广泛地被定义。模型索引提供访问数据的临时指针,用于通过模型提取或修改数据。

1.3.行号和列号

模型的基本形式是用行和列定义的表格数据,但这并不意味着底层的数据是用二维数组存储的,使用行和列只是为了组件之间交互方便。一个模型索引包含行号和列号。要获得一个模型索引,必须提供 3 个参数:行号、列号、父项的模型索引。例如,对于图 1中的表格模型中的 3 个项 A、B、C,获取其模型索引的示意代码如下:
QModelIndex indexA = model->index(0, 0, QModelIndex());
QModelIndex indexB = model->index(1, 1, QModelIndex());
QModelIndex indexC = model->index(2, 1, QModelIndex());

1.4.父项

对于列表模型和表格模型,每个项的父项都是顶层项,用QModelIndex()表示,而树状模型情况比较复杂,项一般称为节点。例如,对于图 1中的树状模型中的 3 个项 A、B、C,获取其模型索引的示意代码如下:

QModelIndex indexA = model->index(0, 0, QModelIndex());
QModelIndex indexB = model->index(1, 1, indexA );
QModelIndex indexC = model->index(2, 1, QModelIndex());

其中节点A和节点C的父节点是顶层节点,节点B的父节点是节点A。

1.5.项的角色

模型中的项能够有不同的角色,可以在不同的情况提供不同的数据。角色由枚举类Qt::ItemDataRole定义。

**表 1 枚举类Qt::ItemDataRole**常用的一些枚举值及其含义
枚举值角色数据类型含义
Qt::DisplayRole0QString界面上显示的字符串
Qt::DecorationRole1QIcon,QColor,QPixmap界面上装饰数据,如图标
Qt::EditRole2QString界面上编辑器中的数据
Qt::ToolTipRole3QString项的toolTip字符串
Qt::StatusTipRole4QString项的statusTip字符串
Qt::WhatsThisRole5QString'这是什么’模式下显示的数据
Qt::FontRole6QFont项的字体
Qt::TextAlignmentRole7Qt::Alignment项的对齐方式
Qt::BackgroundRole8QBrush项的背景色
Qt::ForegroundRole9QBrush项的前景色,如文字颜色
Qt::CheckStateRole10Qt::CheckState项的复选状态
Qt::AccessibleTextRole11QString扩展的可访问文本
Qt::AccessibleDescriptionRole12QString出于无障碍目的对项的描述
Qt::SizeHintRole13QSize提供给视图的项的大小提示
Qt::InitialSortOrderRole14Qt::SortOrder标题视图的初始排序顺序
Qt::UserRole0x0100QVanriant自定义的用户数据

1.6.总结

  • 模型索引以独立于任何底层数据结构的方式提供有关模型提供的项的位置的视图和委托信息。
  • 项目由其行号和列号以及其父项目的模型索引引用。
  • 模型索引由模型根据其他组件(如视图和委托)的要求构建。
  • 如果在使用index()请求索引时为父项指定了有效的模型索引,则返回的索引将引用模型中该父项下的项。所获得的索引是指该项的子项。
  • 如果在使用index()请求索引时为父项指定了无效的模型索引,则返回的索引将引用模型中的顶级项。
  • 角色区分与项目关联的不同类型的数据。
http://www.hkea.cn/news/887710/

相关文章:

  • 网站营销与推广策略百度一下官网首页百度
  • 网站建设张世勇100个免费推广b站
  • 网络营销的常用工具百度关键词优化点击 教程
  • 公司网站要怎么做少儿编程培训机构排名前十
  • 一个好的网站是什么样的商家联盟营销方案
  • 网站解除域名绑定网站广告收费标准
  • 郑州的建设网站有哪些手续免费发布推广信息的平台有哪些
  • 手机做网站软件优化服务平台
  • 网站图片装修的热切图怎么做营销技巧培训
  • 可以上传图片的网站怎么做百度关键词点击
  • 泉州网站制作广州seo网站开发
  • cuntlove wordpressseo外链发布工具
  • 购买一个网站空间如何可以多个域名使用吗长沙网站建设服务
  • 天津市建设委员会网站上海网站制作开发
  • 扬中网站建设墨子学院seo
  • 分析电子商务网站建设需求教案青岛今天发生的重大新闻
  • 汕头模板开发建站百度发布信息怎么弄
  • 健身网站开发项目总结关键词筛选工具
  • 重庆网站建设零臻靠谱国内永久免费的云服务器
  • 软件库合集软件资料2024郑州百度快照优化
  • 房地产开发公司网站建设方案seo去哪里学
  • 做网站可以赚钱吗百度小说搜索风云排行榜
  • 做网站交接需要哪些权限网站seo视频教程
  • 在网站怎么做收款二维码刷移动关键词优化
  • 问信息奥赛题怎么做 去哪个网站互联网网络推广
  • b2c电子商务网站系统下载专业网站seo推广
  • 引流推广的方法seo诊断工具
  • 平阴县建设工程网站直通车推广怎么做
  • 网站开发外包不给ftp高佣金app软件推广平台
  • 太原适合网站设计地址百度用户服务中心客服电话