#pragma once
#include <QAbstractTableModel>
#include <QVariant>
class MyTableModel :public QAbstractTableModel {
Q_OBJECT
public:
MyTableModel(QObject* parent = nullptr):QAbstractTableModel(parent){}
int rowCount(const QModelIndex &parent = QModelIndex()) const override {
return 5;
}
int columnCount(const QModelIndex &parent = QModelIndex()) const override {
return 3;
}
QVariant data(const QModelIndex &index, int role = Qt::DisplayRole) const override {
if (!index.isValid() || role != Qt::DisplayRole) {
return QVariant();
}
return index.row() + index.column();
}
};
#pragma once
#include <QtWidgets/QMainWindow>
#include "ui_QtWidgetsApplication1.h"
#include <QStandardItemModel>
#include <QItemSelectionModel>
#include "MyTableModel.hpp"
class QtWidgetsApplication1 : public QMainWindow
{
Q_OBJECT
public:
QtWidgetsApplication1(QWidget *parent = nullptr);
~QtWidgetsApplication1();
MyTableModel myModel;
private:
Ui::QtWidgetsApplication1Class ui;
};
#include "QtWidgetsApplication1.h"
QtWidgetsApplication1::QtWidgetsApplication1(QWidget *parent)
: QMainWindow(parent)
{
ui.setupUi(this);
//为UI设置模型
ui.tableView->setModel(&myModel);
}
QtWidgetsApplication1::~QtWidgetsApplication1()
{}
表格样式:
Qt模型中的role是用来在数据项(通常是表格模型中的单元格)上标识不同的数据信息的。每个数据项可以有多个role,每个role代表不同的数据信息,例如显示的文本、图标、背景色等。
在Qt中,通过Q