2023-04-19 13:51:23 +00:00
|
|
|
|
|
|
|
#ifndef TABLEWIDGET_H
|
|
|
|
#define TABLEWIDGET_H
|
|
|
|
|
|
|
|
#include <QTableWidget>
|
|
|
|
#include <QMenu>
|
|
|
|
#include <QMouseEvent>
|
|
|
|
#include <QItemDelegate>
|
|
|
|
#include <QComboBox>
|
|
|
|
#include <QCheckBox>
|
2023-05-01 20:56:52 +00:00
|
|
|
#include <QRegularExpression>
|
2023-05-02 20:18:41 +00:00
|
|
|
#include <QLineEdit>
|
|
|
|
#include <QRegularExpressionValidator>
|
|
|
|
#include <QRegularExpression>
|
2023-04-19 13:51:23 +00:00
|
|
|
|
|
|
|
class tableWidget : public QTableWidget
|
|
|
|
{
|
2023-05-01 20:56:52 +00:00
|
|
|
Q_OBJECT
|
|
|
|
|
2023-04-19 13:51:23 +00:00
|
|
|
public:
|
2023-05-01 20:56:52 +00:00
|
|
|
explicit tableWidget(QWidget* parent = 0);
|
2023-09-28 14:44:49 +00:00
|
|
|
void editing(bool val) { editingEnabled = val; };
|
2023-05-01 20:56:52 +00:00
|
|
|
|
|
|
|
signals:
|
|
|
|
void rowAdded(int row);
|
2023-05-02 20:18:41 +00:00
|
|
|
void rowDeleted(quint32 num);
|
2023-04-19 13:51:23 +00:00
|
|
|
|
|
|
|
protected:
|
|
|
|
void mouseReleaseEvent(QMouseEvent *event);
|
2023-09-28 14:44:49 +00:00
|
|
|
bool editingEnabled = true;
|
2023-04-19 13:51:23 +00:00
|
|
|
};
|
|
|
|
|
|
|
|
|
2023-05-02 20:18:41 +00:00
|
|
|
class tableEditor : public QItemDelegate
|
|
|
|
{
|
|
|
|
Q_OBJECT
|
|
|
|
public:
|
2023-05-09 11:11:38 +00:00
|
|
|
explicit tableEditor(QString validExp = "", QObject *parent = 0);
|
2023-05-02 20:18:41 +00:00
|
|
|
QWidget* createEditor(QWidget *parent, const QStyleOptionViewItem &option, const QModelIndex &index) const override;
|
|
|
|
|
|
|
|
mutable QLineEdit *edit;
|
2023-05-09 11:11:38 +00:00
|
|
|
QString validExp;
|
2023-05-02 20:18:41 +00:00
|
|
|
};
|
|
|
|
|
|
|
|
|
|
|
|
|
2023-04-19 13:51:23 +00:00
|
|
|
class tableCombobox : public QItemDelegate
|
|
|
|
{
|
2023-05-01 20:56:52 +00:00
|
|
|
Q_OBJECT
|
2023-04-19 13:51:23 +00:00
|
|
|
public:
|
2023-04-23 20:29:44 +00:00
|
|
|
explicit tableCombobox(QAbstractItemModel* model, bool sort=false, QObject *parent = 0);
|
2023-04-19 13:51:23 +00:00
|
|
|
QWidget* createEditor(QWidget *parent, const QStyleOptionViewItem &option, const QModelIndex &index) const override;
|
|
|
|
void setEditorData(QWidget *combo, const QModelIndex &index) const override;
|
|
|
|
void setModelData(QWidget *combo, QAbstractItemModel *model, const QModelIndex &index) const override;
|
|
|
|
void updateEditorGeometry(QWidget *combo, const QStyleOptionViewItem &option, const QModelIndex &index) const override;
|
|
|
|
|
2023-05-01 20:56:52 +00:00
|
|
|
mutable QComboBox *combo;
|
|
|
|
mutable QComboBox *modelCombo = Q_NULLPTR;
|
|
|
|
|
|
|
|
private slots:
|
2023-05-02 20:18:41 +00:00
|
|
|
void setData(int val);
|
2023-05-01 20:56:52 +00:00
|
|
|
|
2023-04-19 13:51:23 +00:00
|
|
|
private:
|
|
|
|
QAbstractItemModel* modelData;
|
|
|
|
};
|
|
|
|
|
2023-05-02 20:18:41 +00:00
|
|
|
|
2023-04-19 13:51:23 +00:00
|
|
|
class tableCheckbox : public QItemDelegate
|
|
|
|
{
|
2023-05-01 20:56:52 +00:00
|
|
|
Q_OBJECT
|
2023-04-19 13:51:23 +00:00
|
|
|
public:
|
|
|
|
explicit tableCheckbox(QObject *parent = 0);
|
|
|
|
QWidget* createEditor(QWidget *parent, const QStyleOptionViewItem &option, const QModelIndex &index) const override;
|
|
|
|
void setEditorData(QWidget *combo, const QModelIndex &index) const override;
|
|
|
|
void setModelData(QWidget *combo, QAbstractItemModel *model, const QModelIndex &index) const override;
|
|
|
|
void updateEditorGeometry(QWidget *combo, const QStyleOptionViewItem &option, const QModelIndex &index) const override;
|
|
|
|
};
|
|
|
|
|
|
|
|
#endif // TABLEWIDGET_H
|