【qt】标准项模型1

简介: 【qt】标准项模型

一.使用标准型项模型

1.应用场景

标准项是有行有列的,类似于表格,所以标准项模型一般可以用于管理表格类的数据。

还是先上目标效果:

我们的数据来源于文本文件:

2.界面拖放

需要蔬菜的可以dd我。。。

3.创建模型

在mainwindow.h中

#ifndef MAINWINDOW_H
#define MAINWINDOW_H

#include <QMainWindow>
#include <QStandardItemModel>//标准型模型头文件

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;
    QStandardItemModel* model;
};
#endif // MAINWINDOW_H

文本文件中一共有6列,我们可以定义一个变量来记录

在mainwindow.cpp中

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

MainWindow::MainWindow(QWidget *parent)
    : QMainWindow(parent)
    , ui(new Ui::MainWindow)
{
    ui->setupUi(this);
    
    colCount=6;
    model=new QStandardItemModel(2,colCount);//创建模型初始化行列
}

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

4.配套模型

在表格中,无疑我们需要许多的选择,我们可以增加一个项选择模型。

在mainwindow.h中

#ifndef MAINWINDOW_H
#define MAINWINDOW_H

#include <QMainWindow>
#include <QStandardItemModel>//标准型模型头文件
#include <QItemSelectionModel>//项选择模型

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;
    int colCount;
    QStandardItemModel* model;
    QItemSelectionModel*selectionModel;
};
#endif // MAINWINDOW_H

同时,使用标准型模型来初始化项选择模型。

model=new QStandardItemModel(2,colCount);
selectionModel=new QItemSelectionModel(model);

5.视图设置模型

ui->tableView->setModel(model);
ui->tableView->setSelectionModel(selectionModel);

现在就可以看到了:

表自适应大小(表格组件有讲过哦):

auto hearView=ui->tableView->horizontalHeader();
hearView->setSectionResizeMode(QHeaderView::Stretch);

运行结果:

6.视图属性的设置

设置选择模式,按ctrl可以多个,按shift可以矩形选中

设置选择行为,就是点击是行还是列还是单元格。这里是单元格

 ui->tableView->setSelectionMode(QAbstractItemView::ExtendedSelection);
 ui->tableView->setSelectionBehavior(QAbstractItemView::SelectItems);

参数的选择可以F1在线文档去找。

【qt】标准项模型2:https://developer.aliyun.com/article/1523132

相关文章
|
2月前
QT4.7版本的OPENGL的3D旋转模型例子
QT4.7版本的OPENGL的3D旋转模型例子
|
11月前
QT+OpenGL鼠标操作和模型控制
光线追踪法 从鼠标投射 3D 射线, 通过摄像机,进入场景,然后检查该光线是否与某个对象相交。
199 0
|
2月前
|
存储 安全 Java
Qt线程池+生产者消费者模型
Qt线程池+生产者消费者模型
70 5
|
1月前
|
编译器 C++
(10)Qt对象模型
(10)Qt对象模型
|
2月前
|
监控 数据可视化 Linux
Qt Model&View&Delegate(模型-视图-代理) 介绍和使用
Qt Model&View&Delegate(模型-视图-代理) 介绍和使用
Qt Model&View&Delegate(模型-视图-代理) 介绍和使用
|
2月前
|
索引
【qt】标准型模型 下
【qt】标准型模型 下
9 0
|
2月前
【qt】标准项模型2
【qt】标准项模型
9 0
|
2月前
|
索引
【qt】初识模型和视图2
【qt】初识模型和视图
11 0
|
2月前
|
数据库 索引
【qt】初识模型和视图1
【qt】初识模型和视图
19 0
|
2月前
|
C++
【Qt】—— 对象模型的认识
【Qt】—— 对象模型的认识