QTableView 列宽设置解释

1、列宽设置如下:

view->setColumnWidth(1, 100);//设置第1列宽100

view->resizeColumnToContents(1);//设置第1列宽度自适应内容
view->resizeColumnsToContents();//设置所有列宽度自适应内容

//下面是通过表头设置列宽
view->horizontalHeader()->setMinimumSectionSize(100);//设置最小列宽
view->horizontalHeader()->setMaximumSectionSize(100);//设置最大列宽

//设置第1列自动...
temptb->horizontalHeader()->setSectionResizeMode(2,QHeaderView::Stretch);
//设置所有列自动...
temptb->horizontalHeader()->setSectionResizeMode(QHeaderView::Stretch);
/*第二个参数可以为:
QHeaderView::Interactive     :0 用户可设置,也可被程序设置成默认大小
QHeaderView::Fixed           :2 用户不可更改列宽
QHeaderView::Stretch         :1 根据空间,自动改变列宽,用户与程序不能改变列宽
QHeaderView::ResizeToContents:3 根据内容改变列宽,用户与程序不能改变列宽
*/

2、注意事项:

(1)设置固定的列宽要在view->seModel(model);之后进行设置,不然无效;

(2)通过表头设置setSectionResizeMode时,参数为QHeaderView::Stretch 和 QHeaderView::ResizeToContents 时,用户和程序不能改变列宽;因此,当内容太多时,用QHeaderView::Stretch时这些内容可能不会完全显示,用户因为不能改变列宽而不能拖动查看隐藏部分;用QHeaderView::ResizeToContents时,内容太多的这一列会特别长;注意效果!

(3)除了(2)中的两种情况,其他时,用户均能改变列宽;

(4)所以,如果知道每列内容长度不会很长,可以用QHeaderView::Stretch, QHeaderView::ResizeToContents,

(5)如果无法预料内容长度,还是设置固定宽度为好。

(6)view->resizeColumnToContents(1);view->resizeColumnsToContents();必须在model里加入内容后执行列宽才能适应内容宽度;否则model为空时执行此句,列宽只能适应空内容而变的很窄,之后再添加内容也不会变宽;

评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值