#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 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 m_listMonitorPin; }; #endif // CHANNELSETTINGDELEGATE_H