mvc是经典的三层结构,将数据,视图和逻辑分离。Qt中的Model/View框架,实现了这个模式。在Qt中这个模式设计到三个类,model类,view类和delegate类。model类保存数据,view负责显示,而delegate负责协调model和view之间的数据edit(编辑)和render(渲染)。
模型与视图结构:视图从模型中获取数据条目索引
代理绘制数据条目
通信方式:信号&槽
-
工作过程:
-
数据改变时,模型发出信号通知视图;
用户对界面操作时,视图发出信号;
代理发出信号告知模型和视图编辑器目前的状态;
列表的抽象基类QAbstractListModel、表格的抽象基类QAbstractTableModel
QDirModel类是文件与目录的存储模型
QStandardItemModel类 : 管理更复杂的树结构件,其中每一个项目可以包含任意数据。
QStringListModel类: 用于存储简单的QString的列表项。
QListView—QListWidget\QUndoView
QTableView—QTableWidget
QTreeView—QTreeWidget
QColumnView
QHeaderView
实际上:QListWidget、QTableWidget、QTreeWidget已经包含数据,是模型与视图集成的类