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>