在我的QML中,我有一个TreeView:
TreeView {
...
model: mProductions.getModel()
TableViewColumn {
role: "name"
title: "Name"
width: root.width/4
}
TableViewColumn {
role: "image"
title: "Image"
width: root.width/4
}
}
如果项目有图像,我需要更高的行高。 所以我尝试在我的数据方法中使用Qt :: SizeHintRole作为项目。但QML并没有要求这个角色。
QVariant Productions::TreeItem::data(int role) const {
switch(role) {
case NameRole:
return QVariant(this->name);
...
case Qt::SizeHintRole:
return QSize(..., ...);
...
default:
return QVariant();
}
}
那么如何强制QML请求此角色?或者还有另一种设置不同行高的方法吗? QML中的rowDelegate对我没用。