QT--Table View

MVC模式

M model 模型
V View 视图
C Controller 控制器
Table View 可以说就是按照MVC模式设置的一个控件。
TableView类似于ListView,它可添加滚动条、选择和可调整大小的标题等部分,与ListView一样,每行的数据都是通过模型提供的。
视图部分全由Table View控制,如字体大小颜色等,只管显示
模型提供内容给table View显示。

例子

MainWindow.h

#ifndef MAINWINDOW_H
#define MAINWINDOW_H

#include <QMainWindow>
#include <QStandardItem>
#include <QStandardItemModel>
#include <QStringList>

namespace Ui {
class MainWindow;
}

class MainWindow : public QMainWindow
{
    Q_OBJECT

public:
    explicit MainWindow(QWidget *parent = 0);
    ~MainWindow();
    void display_content(int row,int col,QString content);

private:
    Ui::MainWindow *ui;
    //构造model
    QStandardItemModel * 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);
    this->model = new QStandardItemModel;
    //设置表头
    this->model->setHorizontalHeaderItem(0,new QStandardItem("hhhh"));
    this->model->setHorizontalHeaderItem(1,new QStandardItem("aaaa"));
    this->model->setHorizontalHeaderItem(2,new QStandardItem("bbbb"));
    this->ui->tableView->setColumnWidth(0,100);
    this->ui->tableView->setColumnWidth(1,100);
    this->ui->tableView->setColumnWidth(2,100);
    //绑定model和view
    this->ui->tableView->setModel(model);
    //显示内容
    display_content(0,0,"Duncan");
    display_content(0,1,"张三");
    display_content(0,2,"李四");

}

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

void MainWindow::display_content(int row,int col,QString content)
{
   this->model->setItem(row,col,new QStandardItem(content));
}

ui界面只拉了一个Table View,object name没改

效果图:
在这里插入图片描述

--------------

构造model的时候使用QStandardItemModel Class 标准条目模型
设置视图内容使用QStandardItem
使用的时候包含两个头文件

#include  <QStandardItem>
#include  <QStandardItemModel>
发布了5 篇原创文章 · 获赞 10 · 访问量 4374

猜你喜欢

转载自blog.csdn.net/weixin_43086497/article/details/104638851
今日推荐