转-QTreeView设置行高、图标
(2016-01-12 10:14:49)
标签:
it |
分类: 计算机 |
//设置图标
QVariant data(const QModelIndex &index, int role)
{
if (!index.isValid())
if(role == Qt::UserRole)
{
}
{
}
if(index.column()==0)
{
}
图标大小
1. 继承QItemDelegate类, 并重载其中的sizeHint函数, 在sizeHint函数中实现给定行高, 将该继承类的对象通过QTreeView::setItemDelegate方法指定给treeview对象;
这个方法经过实际试验是可行的, 我的Delegate类的sizeHint方法如下:
-
///
\reimp -
QSize
MyDelegate::sizeHint ( const QStyleOptionViewItem & option, -
const QModelIndex const& index ) -
{
-
QSize size = QItemDelegate::sizeHint(option, index); -
size.setHeight( size.height() + 4 ); -
return size; -
}
2. 第二个方法是在ItemModel的data方法中,
实现当role==Qt::SizeHintRole时, 返回一个特定的QSize对象, 即可实现自定义行高的效果; 如
(这个方法未经实际的程序检验, 仅供参考)
-
//
重载QAbstractItemModel方法 -
QVariant
MyModel::data ( const QModelIndex int& index, role const) -
{
-
switch(role) -
{ -
case Qt::SizeHintRole: -
// 返回单元格尺寸 -
return QSize(16, 35); -
break; -
case Qt::TextAlignmentRole: -
...... -
} - }