问题记录-QTableView修改列宽不及时问题

文章讲述了在使用QTableView时,设置表头信息和填充数据后,如果先设置列宽再更新界面,setColumnWidth的效果可能不明显。解决办法是在调用setHorizontalHeaderLabels后立即更新界面,然后再设置列宽并再次更新,确保宽度生效。
摘要由CSDN通过智能技术生成

在使用QTableView中,使用setHorizontalHeaderLabels()方法设置表头信息后,马上填充表格内容,然后通过setColumnWidth()设置列宽,最后使用update()更新界面,发现setColumnWidth()的实际效果没有。代码如下:

QStringList titles;
QTableView tableView = new QTableView();

QStandardItemModel *pItemModel = new QStandardItemModel();

tableView->setModel(pItemModel);

// 设置titles内容
// ...

pItemModel->setHorizontalHeaderLabels(titles);

// 添充item
// tableView->setItem(); ...

// 设置列宽
for (int i = 0; i < titles.count(); ++i) {
	tableView->setColumnWidth(i, 100);
}

// 强制更新界面
update();

解决方案:在setHorizontalHeaderLabels()方法之后强制更新界面。代码如下:

QStringList titles;
QTableView tableView = new QTableView();

QStandardItemModel *pItemModel = new QStandardItemModel();

tableView->setModel(pItemModel);

// 设置titles内容
// ...

pItemModel->setHorizontalHeaderLabels(titles);

// 强制更新界面
update();

// 添充item
// tableView->setItem(); ...

// 设置列宽
for (int i = 0; i < titles.count(); ++i) {
	tableView->setColumnWidth(i, 100);
}

// 强制更新界面
update();

望能者看到该贴后能给出具体回答。

  • 3
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值