12345678910111213141516171819202122232425262728293031323334353637383940414243 |
- #ifndef CHANNELSETTINGDELEGATE_H
- #define CHANNELSETTINGDELEGATE_H
- #include "Common/BaseViewEx/basedelegate.h"
- #include "Common/DataBase/entities.h"
- #include "Common/ComboBox/customcombobox.h"
- class ChannelSettingDelegate : public QStyledItemDelegate
- {
- Q_OBJECT
- public:
- explicit ChannelSettingDelegate(QObject *parent = nullptr);
- public:
- void SetMPList(QList<stMonitorPin> listMonitorPin){m_listMonitorPin = listMonitorPin;}
- public:
- // QColor GetSpecifiedBGColor(const QStyleOptionViewItem &, const QModelIndex &, SpecifiedBGRole) const override;
- QColor GetTextColor(const QStyleOptionViewItem &option, const QModelIndex &) const;
- virtual void PaintText(QPainter *painter, const QStyleOptionViewItem &option, const QModelIndex &index) const;
- void paint(QPainter *painter, const QStyleOptionViewItem &option, const QModelIndex &index) const override;
- //创建你编辑时候的控件,返回修改数据的组件
- QWidget* createEditor(QWidget *parent, const QStyleOptionViewItem &option, const QModelIndex &index) const override;
- //编辑的时候设置数据到上面创建的editor中。
- void setEditorData(QWidget *editor, const QModelIndex &index) const override;
- //编辑完成,保存数据到model中
- void setModelData(QWidget *editor, QAbstractItemModel *model, const QModelIndex &index) const override;
- //设置编辑控件的位置和大小、样式等(保证editor显示在item view的合适位置以及大小)
- void updateEditorGeometry(QWidget * editor, const QStyleOptionViewItem &option, const QModelIndex &index) const override;
- protected:
- bool eventFilter(QObject *object, QEvent *event) override;
- signals:
- void ComboBoxCurrentTextChanged(int nRow, stMonitorPin MPInfo) const;
- void LineEditTextEdited(int nRow, const QString &strText) const;
- private:
- QList<stMonitorPin> m_listMonitorPin;
- };
- #endif // CHANNELSETTINGDELEGATE_H
|