代码拉取完成,页面将自动刷新
Qt MVC
结构之 Model
模型介绍MVC
简介MVC
就是 Model-View-Control
模式的简称,包括模型层(Model
), 视图层(View
), 控制层(Controller
)。
Model
主要负责管理数据,View
主要用来显示数据,Controller
主要用来操作数据,控制 View
联动。
Qt
也采用了这个模式,模型层用 Model
,视图层用 View
,控制层改名叫了代理 Delegate
。
QFileSystemModel
我们可以举个简单的例子,用 QFileSystemModel
来实现文件夹内容的展示,QFileSystemModel
是 Qt
给我们提供的处理本地文件系统的文件和目录。
int main(int argc, char *argv[])
{
QApplication a(argc, argv);
// MainWindow w;
// w.show();
QSplitter* splitter = new QSplitter;
QFileSystemModel* model = new QFileSystemModel;
model->setRootPath(QDir::currentPath());
// 下面采用了两种方式,对同一个文件夹中的内容进行了展示
QTreeView* tree = new QTreeView(splitter);
tree->setModel(model);
tree->setRootIndex(model->index(QDir::currentPath()));
QListView* list = new QListView(splitter);
list->setModel(model);
list->setRootIndex(model->index(QDir::currentPath()));
splitter->setWindowTitle("two views onto the same file system model");
splitter->resize(1000, 800);
splitter->show();
// 运行起来,可以看到,使用 tree 的方式是更好,更美观的,linux 也是采用的 tree 的方式
return a.exec();
}
为 model
设置根目录,目录为当前文件夹。
创建树型视图,视图加载 model
,并且设置视图的根索引为 model
的当前目录的索引。
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。