怎样将QTableWidget控件的列标题的宽度设置为固定不可拖动的

QTableWidget的列标题和行标题默认显示的情况下,可以拖动两个相邻列(行)之间的分割线来改变列宽(行高),如何将这个列宽(行高)锁死,设置为不可拖动的呢?

针对我所用的版本——Qt5.9,可以如下操作:

// 设置所有的列
ui->tableWidget->horizontalHeader()->setSectionResizeMode(QHeaderView::Fixed);
// 或者设置某一列,比如第一列
ui->tableWidget->horizontalHeader()->setSectionResizeMode(0,QHeaderView::Fixed);
  • 首先,QTableWidget 继承自 QTableView, QTableView有一个 成员函数:
QHeaderView *QTableView::horizontalHeader() const
  • 上面的函数返回的指针类型 QHeaderView 有一个成员函数:
void QHeaderView::setSectionResizeMode(ResizeMode mode)
/*
Sets the constraints on how the header can be resized to those described by the given mode.

This function was introduced in Qt 5.0.
*/

从Qt的帮助文档的说明可以看出来,这个函数是5.0版本之后才有的,4.0的版本中,使用的是

void QHeaderView::setResizeMode(ResizeMode mode)
  • 值得一提的是:如何设置列宽自适应划分整个控件的宽度:
ui->tableWidget->horizontalHeader()->setSectionResizeMode(QHeaderView::Stretch);

设置为 stretch 模式后,每一列会自动等距离划分整个控件的宽度,并且列宽也是不能由用户拖动改变的。

  • 2
    点赞
  • 29
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值