#include "viewmodelbase.h" #include "ui_viewmodelbase.h" ViewModelBase::ViewModelBase(QWidget *parent) : QWidget(parent), ui(new Ui::ViewModelBase) { ui->setupUi(this); this->resize(800, 600); /* 初始化表格 */ initViewModel(); addSomeData(); } ViewModelBase::~ViewModelBase() { delete ui; } /* 初始化视图模型 */ void ViewModelBase::initViewModel() { m_layout = new QVBoxLayout(this); m_tableView = std::make_shared(); m_model = std::make_shared(); m_tableView->setModel(m_model.get()); /* 设置布局 */ m_layout->addWidget(m_tableView.get()); this->setLayout(m_layout); /*********** 设置表格内容 **********/ /* 设置列数和标题 */ m_model->setColumnCount(4); m_model->setHeaderData(0,Qt::Horizontal, "序号", Qt::DisplayRole); m_model->setHorizontalHeaderItem(1, new QStandardItem("通道号")); m_model->setHeaderData(2, Qt::Horizontal, "通道名称", Qt::DisplayRole); m_model->setHeaderData(3, Qt::Horizontal, "颜色", Qt::DisplayRole); } /* 添加一些数据 */ void ViewModelBase::addSomeData() { /* 添加数据 */ for (int i = 0; i < 8; i++) { m_model->setItem(i, 0, new QStandardItem(QString::number(i + 1))); m_model->setItem(i, 1, new QStandardItem(QString::number(i + 1))); m_model->setItem(i, 2, new QStandardItem(QString("通道%1").arg(i))); m_model->setItem(i, 3, new QStandardItem(QString("颜色%1").arg(i))); } }