在Qt中,MVC模式被广泛使用于各种用户界面框架中,包括Qt的模型视图结构。Qt的模型视图结构是基于MVC模式设计的,其中包括了Model、View和Delegate三个部分。
QTableView是Qt模型视图结构中的一种视图,它用于以表格形式显示数据。
1.界面效果
2.头文件
#ifndef WIDGET_H
#define WIDGET_H
#include <QWidget>
#include <QTableView>
#include <QStandardItemModel>
#include <QHBoxLayout>
QT_BEGIN_NAMESPACE
namespace Ui {
class Widget;
}
QT_END_NAMESPACE
class Widget : public QWidget
{
Q_OBJECT
public:
Widget(QWidget *parent = nullptr);
~Widget();
void initUI();
private:
Ui::Widget *ui;
QStandardItemModel model;
// 创建一个表视图来显示模型的数据
QTableView tableView;
};
#endif // WIDGET_H
3.cpp文件
#include "widget.h"
#include "ui_widget.h"
Widget::Widget(QWidget *parent)
: QWidget(parent)
, ui(new Ui::Widget)
{
ui->setupUi(this);
initUI();
}
Widget::~Widget()
{
delete ui;
}
void Widget::initUI()
{
model.setHorizontalHeaderLabels(QStringList()<<"col1"<<"col2"<<"col3");
model.setRowCount(5);//设置行数
model.setColumnCount(3);//设置列数
for(int row=0;row<5;row++)
{
for(int col=0;col<3;col++)
{
QStandardItem *item ;
item = new QStandardItem(QString::number(row*3+col));
model.setItem(row,col,item);//初始化单元格
}
}
// 创建一个表视图来显示模型的数据
tableView.setModel(&model);
QHBoxLayout * layout=new QHBoxLayout();
layout->addWidget(&tableView);
setLayout(layout);
}