Qt 为 children Qtreeview 中的项目设置不同的高度
Qt set different heights for items in Qtreeview for children
我目前正在通过样式表定义 QTreeView 中项目的高度
QTreeView {
background: palette(window);
color: palette(text);
border: none;
}
QTreeView::item {
height: 40px;
padding-top: 0.5ex;
padding-bottom: 0.5ex;
margin: 2px;
}
有了这个,树中的所有项目都将具有相同的高度。是否可以为 children 定义不同的高度?
我不确定这是否可以通过样式表完成。实现此目的的正常方法是覆盖 QAbstractItemModel::data
并使其 return 特定值与 Qt::SizeHintRole
数据角色关联。
QVariant new_model::data (const QModelIndex &index, int role) const
{
if (role == Qt::SizeHintRole) {
/*
* Calculate required size hint based on model data etc.
*/
QSize size = ...;
return size;
}
/*
* Defer to base class implementation.
*/
return base_class::data(index, role);
}
我目前正在通过样式表定义 QTreeView 中项目的高度
QTreeView {
background: palette(window);
color: palette(text);
border: none;
}
QTreeView::item {
height: 40px;
padding-top: 0.5ex;
padding-bottom: 0.5ex;
margin: 2px;
}
有了这个,树中的所有项目都将具有相同的高度。是否可以为 children 定义不同的高度?
我不确定这是否可以通过样式表完成。实现此目的的正常方法是覆盖 QAbstractItemModel::data
并使其 return 特定值与 Qt::SizeHintRole
数据角色关联。
QVariant new_model::data (const QModelIndex &index, int role) const
{
if (role == Qt::SizeHintRole) {
/*
* Calculate required size hint based on model data etc.
*/
QSize size = ...;
return size;
}
/*
* Defer to base class implementation.
*/
return base_class::data(index, role);
}