10#include <QSqlRelationalDelegate>
11#include <QSqlRelationalTableModel>
12#include <QSqlDatabase>
21 void paint(QPainter *painter,
const QStyleOptionViewItem &option,
const QModelIndex &index)
const override;
22 QSize
sizeHint(
const QStyleOptionViewItem &option,
const QModelIndex &index)
const override;
23 bool editorEvent(QEvent *event, QAbstractItemModel *model,
const QStyleOptionViewItem &option,
const QModelIndex &index)
override;
24 QWidget *
createEditor(QWidget *parent,
const QStyleOptionViewItem &option,
const QModelIndex &index)
const override;
45 TableModel(QObject *parent =
nullptr, QSqlDatabase db = QSqlDatabase());
47 QVariant
data(
const QModelIndex &index,
int role = Qt::DisplayRole)
const override;
48 bool setData(
const QModelIndex & index,
const QVariant &
value,
int role)
override;
49 Qt::ItemFlags
flags(
const QModelIndex &index)
const override;
float value(const T *src, size_t ch)
TableDelegate(QObject *parent)
QSize sizeHint(const QStyleOptionViewItem &option, const QModelIndex &index) const override
QVector< int > m_dateTimeColumns
void addDateTimeColumn(int column)
bool editorEvent(QEvent *event, QAbstractItemModel *model, const QStyleOptionViewItem &option, const QModelIndex &index) override
QVector< int > m_booleanColumns
void setEditable(bool editable)
QWidget * createEditor(QWidget *parent, const QStyleOptionViewItem &option, const QModelIndex &index) const override
void paint(QPainter *painter, const QStyleOptionViewItem &option, const QModelIndex &index) const override
void addBooleanColumn(int column)
The TableModel class handles boolean and datetime columns in a custom way.
TableModel(QObject *parent=nullptr, QSqlDatabase db=QSqlDatabase())
QVector< int > m_dateTimeColumns
QVector< int > m_booleanColumns
Qt::ItemFlags flags(const QModelIndex &index) const override
bool setData(const QModelIndex &index, const QVariant &value, int role) override
void addBooleanColumn(int column)
void addDateTimeColumn(int column)
QVariant data(const QModelIndex &index, int role=Qt::DisplayRole) const override