123456789101112131415161718192021222324252627282930313233343536 |
- #ifndef BUTTONDELEGATE_H
- #define BUTTONDELEGATE_H
- #include "basedelegate.h"
- #include <QMap>
- struct stButtonInfo
- {
- QString strText;
- int nWidth;
- int nHeight;
- };
- ///
- /// 为指定列设置按钮代理
- ///
- class ButtonDelegate : public BaseDelegate
- {
- Q_OBJECT
- public:
- explicit ButtonDelegate(QObject *parent = nullptr);
- void CreateButton(int nCol, QString strBtnText, int nBtnWidth, int nBtnHeight);
- public:
- void paint(QPainter *painter, const QStyleOptionViewItem &option, const QModelIndex &index) const override;
- bool editorEvent(QEvent* event, QAbstractItemModel* model, const QStyleOptionViewItem& option, const QModelIndex& index) override;
- signals:
- // 发出带有被点击的QModelIndex和按钮索引的信号
- void SignalButtonClicked(const QModelIndex &index, int nBtnIndex) const;
- private:
- QMap<int, QList<stButtonInfo>> m_mapBtnInfo;
- };
- #endif // BUTTONDELEGATE_H
|