channelsettingdelegate.h 1.9 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243
  1. #ifndef CHANNELSETTINGDELEGATE_H
  2. #define CHANNELSETTINGDELEGATE_H
  3. #include "Common/BaseViewEx/basedelegate.h"
  4. #include "Common/DataBase/entities.h"
  5. #include "Common/ComboBox/customcombobox.h"
  6. class ChannelSettingDelegate : public QStyledItemDelegate
  7. {
  8. Q_OBJECT
  9. public:
  10. explicit ChannelSettingDelegate(QObject *parent = nullptr);
  11. public:
  12. void SetMPList(QList<stMonitorPin> listMonitorPin){m_listMonitorPin = listMonitorPin;}
  13. public:
  14. // QColor GetSpecifiedBGColor(const QStyleOptionViewItem &, const QModelIndex &, SpecifiedBGRole) const override;
  15. QColor GetTextColor(const QStyleOptionViewItem &option, const QModelIndex &) const;
  16. virtual void PaintText(QPainter *painter, const QStyleOptionViewItem &option, const QModelIndex &index) const;
  17. void paint(QPainter *painter, const QStyleOptionViewItem &option, const QModelIndex &index) const override;
  18. //创建你编辑时候的控件,返回修改数据的组件
  19. QWidget* createEditor(QWidget *parent, const QStyleOptionViewItem &option, const QModelIndex &index) const override;
  20. //编辑的时候设置数据到上面创建的editor中。
  21. void setEditorData(QWidget *editor, const QModelIndex &index) const override;
  22. //编辑完成,保存数据到model中
  23. void setModelData(QWidget *editor, QAbstractItemModel *model, const QModelIndex &index) const override;
  24. //设置编辑控件的位置和大小、样式等(保证editor显示在item view的合适位置以及大小)
  25. void updateEditorGeometry(QWidget * editor, const QStyleOptionViewItem &option, const QModelIndex &index) const override;
  26. protected:
  27. bool eventFilter(QObject *object, QEvent *event) override;
  28. signals:
  29. void ComboBoxCurrentTextChanged(int nRow, stMonitorPin MPInfo) const;
  30. void LineEditTextEdited(int nRow, const QString &strText) const;
  31. private:
  32. QList<stMonitorPin> m_listMonitorPin;
  33. };
  34. #endif // CHANNELSETTINGDELEGATE_H