model不是有个data函数么?这是我的方法:
QVariant HandCaseModel::data(const QModelIndex &index, int role) const
{
if (!index.isValid())
return QVariant();
switch (role)
{
case Qt::TextAlignmentRole:
return int(Qt::AlignVCenter);
case Qt::BackgroundRole:
return QColor(250, 250, 250);
case Qt::DisplayRole:
case Qt::EditRole:
return m_list.at(index.column());
case Qt::SizeHintRole:
return QSize(80, 20); //就是这里改变大小,还可以根据不同的index设置不同的值
default:
break;
}
return QVariant();
}
当你调用setModel或reset model的时候需要调用一下:
void QTableView::resizeColumnsToContents () //根据data函数设置的size调整列宽
void QTableView::resizeRowsToContents () //根据data函数设置的size调整行高