我使用QTableView
使用的一个子类QAbstractTableModel
作为它的模型。 通过实施data()
和headerdata()
在子类的模式,它是控制数据等,标头值,字体等表中的许多特性是可行的。
就我而言,我希望模型设定每个表列的宽度。 如何才能做到这一点?
我使用QTableView
使用的一个子类QAbstractTableModel
作为它的模型。 通过实施data()
和headerdata()
在子类的模式,它是控制数据等,标头值,字体等表中的许多特性是可行的。
就我而言,我希望模型设定每个表列的宽度。 如何才能做到这一点?
有两种方法:
在模型中的数据的方法,你可以返回作用SizeHintRole。
更好的办法是继承QItemDelegate
和覆盖的方法。
看到这里( qitemdelegate.html#sizeHint )
例如-
QSize ItemDelegate::sizeHint( const QStyleOptionViewItem & option, const QModelIndex & index ) const
{
QSize sz;
if(index.column()==2)
{
return QSize(128, option.rect().height());
}
return QSize();
}
在这里,我设定栏2至128个像素的宽度和我在从在保持的项目矩形的高度填充QStyleOptionViewItem
。