前言
QAbstractItemDelegate 有两个字类,QStyledItemDelegate 和 QItemDelegate,根据文档描述 QStyledItemDelegate 使用当前样式来绘制。
自定义代理:
主要实现以下几个函数:
创建控件
QWidget *createEditor(QWidget *parent, const QStyleOptionViewItem &option, const QModelIndex &index) const;
设置控件
void setEditorData(QWidget *editor, const QModelIndex &index) const;
控件编辑后设置model
void setModelData(QWidget *editor, QAbstractItemModel *model, const QModelIndex &index) const;
设置显示位置
void updateEditorGeometry(QWidget *editor, const QStyleOptionViewItem &option, const QModelIndex &index) const;
重绘
void paint(QPainter *painter, const QStyleOptionViewItem &option, const QModelIndex &index) const;
代理控件默认是双击后才创建,进入编辑的。