buttondelegate.h 949 B

123456789101112131415161718192021222324252627282930313233343536373839
  1. #ifndef BUTTONDELEGATE_H
  2. #define BUTTONDELEGATE_H
  3. #include <QStyledItemDelegate>
  4. #include <QWidget>
  5. #include <QHBoxLayout>
  6. #include <QPushButton>
  7. #include <QModelIndex>
  8. #include <QAbstractItemModel>
  9. #include <QPainter>
  10. #include <QStyleOptionViewItem>
  11. #include <QStyleOptionButton>
  12. #include <QApplication>
  13. #include <QTableView>
  14. #include <QMouseEvent>
  15. #include <QDebug>
  16. class ButtonDelegate: public QStyledItemDelegate{
  17. Q_OBJECT
  18. public:
  19. explicit ButtonDelegate(int buttonColumn,QObject *parent = nullptr);
  20. void paint(QPainter *painter, const QStyleOptionViewItem &option, const QModelIndex &index) const override;
  21. bool editorEvent(QEvent *event, QAbstractItemModel *model,const QStyleOptionViewItem &option, const QModelIndex &index) override;
  22. void handleButtonClick(int row, int button);
  23. private:
  24. int buttonColumn; // 成员变量
  25. signals:
  26. void buttonClicked(int row, int button);
  27. };
  28. #endif // BUTTONDELEGATE_H