【qt】初识模型和视图1

简介: 【qt】初识模型和视图

一.模型和视图的概念

1.关系

模型管理着数据,数据支撑着模型,视图展示着模型。

2.模型

模型是一个类,已经为对应数据写好操作的类,不同的数据对应着不同的模型,模型以行来管理着数据。

3.数据

数据可以分为:数据库数据,内存数据,磁盘数据。

4.视图

View相当于模型的界面,用来展示模型。

Widget相当于模型与视图结合在一起了。

5.特点

通过模型与视图的框架,使数据分类,大大的提高了灵活性,响应性,可以更好的处理复杂的数据。

二.文件系统模型

目标效果:

1.那种数据?

文件系统模型管理着磁盘数据

2.界面拖放

界面的拖放,我就不讲了,不会的可以问我。

3.创建模型

mainwindow.h

#ifndef MAINWINDOW_H
#define MAINWINDOW_H

#include <QMainWindow>
#include <QFileSystemModel>//文件系统模型头文件

QT_BEGIN_NAMESPACE
namespace Ui { class MainWindow; }
QT_END_NAMESPACE

class MainWindow : public QMainWindow
{
    Q_OBJECT

public:
    MainWindow(QWidget *parent = nullptr);
    ~MainWindow();

private:
    Ui::MainWindow *ui;
    QFileSystemModel*model;//定义文件系统模型数据成员
};
#endif // MAINWINDOW_H

mainwindow.cpp


#include "mainwindow.h"
#include "ui_mainwindow.h"

MainWindow::MainWindow(QWidget *parent)
    : QMainWindow(parent)
    , ui(new Ui::MainWindow)
{
    ui->setupUi(this);
    model=new QFileSystemModel;//创建模型
}

MainWindow::~MainWindow()
{
    delete ui;
}

4.模型设置数据

model->setRootPath(QDir::currentPath());

通过F1在线文档查看,就是相当于是文件目录中设置一个监视器,目录文件数据的一举一动都能被检测到。

5.视图设置模型

一个模型可以对应多个视图

    ui->treeView->setModel(model);
    ui->listView->setModel(model);
    ui->tableView->setModel(model);

设置好视图,我们就可以看到界面了

6.模型索引

这个信号的参数就是一个模型索引,在视图中,我们可以通过模型索引来对模型进行操作。

比如说我们希望ListViewTableView跟随TreeView的变化而变化。

void MainWindow::on_treeView_clicked(const QModelIndex &index)
{
    ui->listView->setRootIndex(index);
    ui->tableView->setRootIndex(index);
}

运行结果:

【qt】初识模型和视图2:https://developer.aliyun.com/article/1523114

相关文章
|
2月前
|
存储
QT图形视图框架绘制曲线图和Smith图
QT图形视图框架绘制曲线图和Smith图
58 0
|
2月前
QT4.7版本的OPENGL的3D旋转模型例子
QT4.7版本的OPENGL的3D旋转模型例子
|
2月前
|
存储 安全 Java
Qt线程池+生产者消费者模型
Qt线程池+生产者消费者模型
70 5
|
2月前
【qt】标准项模型1
【qt】标准项模型
21 0
|
1月前
|
编译器 C++
(10)Qt对象模型
(10)Qt对象模型
|
2月前
|
监控 数据可视化 Linux
Qt Model&View&Delegate(模型-视图-代理) 介绍和使用
Qt Model&View&Delegate(模型-视图-代理) 介绍和使用
Qt Model&View&Delegate(模型-视图-代理) 介绍和使用
|
2月前
|
数据库 开发者 Windows
QT 项目视图(QListView&QTreeView&QTableView)和项目部件(QListWidget&QTreeWidget&QTableWidget)详解-2
QT 项目视图(QListView&QTreeView&QTableView)和项目部件(QListWidget&QTreeWidget&QTableWidget)详解
|
2月前
|
XML 设计模式 JSON
QT 项目视图(QListView&QTreeView&QTableView)和项目部件(QListWidget&QTreeWidget&QTableWidget)详解-1
QT 项目视图(QListView&QTreeView&QTableView)和项目部件(QListWidget&QTreeWidget&QTableWidget)详解
|
2月前
|
索引
【qt】标准型模型 下
【qt】标准型模型 下
9 0
|
2月前
【qt】标准项模型2
【qt】标准项模型
9 0