QT的Mdi,modle与view视图
一.QT的QMdiArea简介
QMdiArea主要用于有多文档界面(Multi-document Interface,MDI)的应用程序设计中。 QMdiArea是在主窗口工作区放置一个QMdiArea作为子窗体的容器。
MDI应用程序就是在主窗口里创建多个同类型的MDI子窗口,这些MDI子窗口在主窗口里显示,并共享主窗口上的工具栏和菜单栏等操作功能,主窗口上的操作都针对当前活动的MDI子窗口进行。

二、QMdiArea的成员方法
(1)子窗口的创建与加入


(2)子窗口层叠、并列

(3)关闭全部子窗口
(4)显示模式
有两种:子窗口模式、多页模式
子窗口模式类似下图:

多页模式类似下图:

QMdiArea可以在Ui界面文件中去设置其相关的属性

三、Moudel/View结构
moudel是存放数据的,但不能显示数据。
view是显示数据的,但不能存放数据。
主要的view结构有:QListView、QTreeView、QTableView...
数据模型moudle有:QStandardItemModel、QStringListModel...
此次使用的是:QTableView与QStandardItemModel
QTableView:用于显示表格状态的数据
QStandardItemModel:标准的moudel,每个项数据可以是任意的数据。
四、Moudel/View基本原理

五、Moudel/View的某些概念
数据模型中的存储单元是项,每一个项都有行号、列号、父项(parent item)。在列表和表格模式下,每个项都有一个顶层项,此时,父项就是顶层项,顶层项用QModelIndex()来表示。
访问moudel中的数据是通过模型索引来进行的。要获得一个模型索引,必须提供行号、列号、父项这3个参数。比如
想获得如下图的A、B、C的模型索引。

六、对Moudel/View的项设置数据
七、程序界面


八、代码
mainwindow.h
mainwindow.cpp
结果
