我有从 QAbstractItemModel 继承的自定义模型和从 QAbstractItemView 继承的自定义视图。模型是对组织为树的数据的包装。当模型更改时,它会发出必要的信号来通知视图有关更改。视图具有默认项目委托。
现在我想为视图中的每个项目创建一个自定义小部件,并使用 QAbstractItemView::setIndexWidget() 进行设置。我怎样才能捕捉和处理视图中的每个项目创建来做到这一点?
我有从 QAbstractItemModel 继承的自定义模型和从 QAbstractItemView 继承的自定义视图。模型是对组织为树的数据的包装。当模型更改时,它会发出必要的信号来通知视图有关更改。视图具有默认项目委托。
现在我想为视图中的每个项目创建一个自定义小部件,并使用 QAbstractItemView::setIndexWidget() 进行设置。我怎样才能捕捉和处理视图中的每个项目创建来做到这一点?
你最好使用itemdelegate。
class MyItemDelegate: public QAbstractItemDelegate
{
Q_OBJECT
QWidget *widget;
public:
MyItemDelegate(QObject *p):QAbstractItemDelegate(p)
{
//create widget
}
void paint(QPainter * painter, const QStyleOptionViewItem & option, const QModelIndex & index) const
{
//initialize painting widget
widget->render(painter);
}
}