FluentUI/src/FluTableModel.h

45 lines
1.2 KiB
C
Raw Normal View History

2024-04-28 18:38:37 +08:00
#ifndef FLUTABLEMODEL_H
#define FLUTABLEMODEL_H
#include <QObject>
#include <QAbstractItemModel>
#include <QtQml/qqml.h>
#include "stdafx.h"
class FluTableModel : public QAbstractTableModel {
2024-06-28 17:09:23 +08:00
Q_OBJECT
Q_PROPERTY_AUTO(QList<QVariantMap>, columnSource)
Q_PROPERTY_AUTO(QList<QVariantMap>, rows)
2024-04-28 18:38:37 +08:00
Q_PROPERTY(int rowCount READ rowCount CONSTANT)
QML_NAMED_ELEMENT(FluTableModel)
public:
2024-06-28 17:09:23 +08:00
enum TableModelRoles { RowModel = 0x0101, ColumnModel = 0x0102 };
2024-04-28 18:38:37 +08:00
explicit FluTableModel(QObject *parent = nullptr);
[[nodiscard]] int rowCount(const QModelIndex &parent = {}) const override;
[[nodiscard]] int columnCount(const QModelIndex &parent = {}) const override;
2024-06-28 17:09:23 +08:00
[[nodiscard]] QVariant data(const QModelIndex &index,
int role = Qt::DisplayRole) const override;
2024-04-28 18:38:37 +08:00
[[nodiscard]] QHash<int, QByteArray> roleNames() const override;
Q_INVOKABLE void clear();
Q_INVOKABLE QVariant getRow(int rowIndex);
2024-04-28 20:22:05 +08:00
Q_INVOKABLE void setRow(int rowIndex, QVariant row);
2024-04-28 18:38:37 +08:00
2024-04-28 20:22:05 +08:00
Q_INVOKABLE void insertRow(int rowIndex, QVariant row);
2024-04-28 18:38:37 +08:00
2024-04-28 20:22:05 +08:00
Q_INVOKABLE void removeRow(int rowIndex, int rows = 1);
2024-04-28 18:38:37 +08:00
Q_INVOKABLE void appendRow(QVariant row);
};
#endif // FLUTABLEMODEL_H