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

广州建站培训学校怎么建网站不用买空间

广州建站培训学校,怎么建网站不用买空间,福州网站建设咨询,佛山营销型网页设计Qt中Model/View结构 Model/View框架的核心思想是模型(数据)与视图(显示)相分离,模型对外提供标准接口存取数据,不关心数据如何显示,视图自定义数据的显示方式,不关心数据如何组织存…

Qt中Model/View结构

Model/View框架的核心思想是模型(数据)与视图(显示)相分离,模型对外提供标准接口存取数据,不关心数据如何显示,视图自定义数据的显示方式,不关心数据如何组织存储。

Model/View框架中数据与显示的分离,可以允许使用不同界面显示同一数据,也能够在不改变数据的情况下添加新的显示界面。为了处理用户输入,引入了委托(delegate)。引入委托的好处是可以自定义数据项的渲染和编辑。

模型必须为每一个数据提供独一无二的索引,视图通过索引访问模型中的数据。

模型与数据源进行交互,为框架中其它组件提供接口。交互的本质在于数据源的类型以及模型的实现方式。视图从模型获取模型索引,通过将模型索引反向传给模型,视图又可以从数据源获取数据。在标准视图中,委托渲染数据项;在需要编辑数据时,委托使用直接模型索引直接与模型进行交互。

Model/View架构分为三部分:模型、视图和委托。每一个组件都由一个抽象类定义,抽象类提供了基本的公共接口以及一些默认实现。

模型、视图和委托使用信号槽进行交互:

A、底层维护的数据发生改变时,模型发出信号通知视图

B、当用户与视图进行交互时,视图发出信号提供了有关用户与界面进行交互的信息

C、当用户编辑数据项时,委托发出信号用于告知模型和视图编辑器的状态。

所有的模型都是QAbstractItemModel的子类。QAbstractItemModel类定义了供视图和委托访问数据的接口。模型并不一定存储数据本身。QAbstractItemModel提供的接口足够灵活,足以应付以表格、列表和树的形式显示的数据。如果要为列表或者表格设计自定义的模型,直接继承QAbstractListModel和QAbstractTableModel类会更好,因为这两个类已经实现了很多通用函数。

QT内置了多种标准模型:

QStringListModel:存储简单的字符串列表

QStandardItemModel:可以用于树结构的存储,提供了层次数据

QFileSystemModel:本地系统的文件和目录信息

QSqlQueryModel、QSqlTableModel、QSqlRelationalTableModel:存取数据库数据

代码示例:

#include <QApplication>
#include <QTreeView>
#include <QListView>
#include <QTableView>
#include <QStandardItemModel>
#include <QSplitter>int main(int argc, char *argv[])
{QApplication app(argc, argv);QSplitter splitter;QStandardItemModel listModel;QStandardItem *rootItem = listModel.invisibleRootItem();for (int row = 0; row < 4; ++row) {QStandardItem *item = new QStandardItem(QString("%0").arg(row) );rootItem->appendRow( item );}QListView listView;listView.setModel ( & listModel );splitter.addWidget( & listView );QStandardItemModel tableModel(4, 4);for (int row = 0; row < 4; ++row) {for (int column = 0; column < 4; ++column) {QStandardItem *item = new QStandardItem(QString("%0,%1").arg(row).arg(column));tableModel.setItem(row, column, item);}}QTableView tableView;tableView.setModel( & tableModel );splitter.addWidget( & tableView );QStandardItemModel treeModel;QStandardItem *parentItem = treeModel.invisibleRootItem();for (int i = 0; i < 4; ++i) {QStandardItem *item = new QStandardItem(QString("%0").arg(i));parentItem->appendRow(item);parentItem = item;}QTreeView treeView;treeView.setModel( & treeModel );splitter.addWidget(& treeView );splitter.show();return app.exec();
}

该文章会更新,欢迎大家批评指正。

推荐一个零声学院免费公开课程,个人觉得老师讲得不错,
分享给大家:[Linux,Nginx,ZeroMQ,MySQL,Redis,
fastdfs,MongoDB,ZK,流媒体,CDN,P2P,K8S,Docker,
TCP/IP,协程,DPDK等技术内容,点击立即学习:
服务器课程:C++服务器

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

相关文章:

  • 电子商务网站建设与维护案例做设计网站赚钱吗
  • 北大学风建设网站网站开发实用技术第2版课后答案
  • 网站怎么添加代码图片网站收录
  • 建设网站宝安区文昌建设局网站
  • 成交型网站建设公司网站的建设方法有哪些
  • 360建站工具贷款网站建设
  • 华建设计网站手机app下载官方免费下载安装
  • 内蒙古自治区工程建设网站app软件开发学什么专业
  • html5网站欣赏 国内导航站wordpress
  • 网站怎么推广引流wordpress 导出export.php
  • 建站最少需要多少钱用cms创建自己带数据库的网站和在本机搭建网站运行平台的心得体会
  • 织梦源码怎样做单页网站自建网站如何备案
  • 适合女生做的网站门户网站安全建设
  • 网站建设推广方案书注册网址的网站
  • 52做网站沈阳网站建设小志
  • 华为网站建站鲜花网站建设源代码
  • 安庆市建设办事处网站thinkphp3.2 企业网站源码
  • app的网站域名注册文化建设宣传标语
  • 优化网站速度的要点易申建设网站
  • 网站开发学习步骤会员管理系统设计
  • 天津做网站的公司有哪些网站建设选题
  • 贵阳有哪些可以制作网站的公司吗顺企网吉安网站建设
  • 海外网站的建设wordpress企业网站源码
  • wordpress付费剧集网站课程网站建设发展趋势
  • 两耳清风怎么做网站免费注册帐号qq
  • 做网站买流量wordpress文章无法显示
  • dedecms本地调试好的网站怎么上传到服务器dede网站模板页在什么文件夹
  • wap网站是什么成都做公众号推广的公司
  • dom手表官方网站网络规划设计师需要掌握哪些
  • 视频网站用什么做的好处网站建设宗旨是指