
width = ui->tableView->columnWidth(0)
ui->tableView->setColumnWidth(0, 0)
ui->tableView->setColumnWidth(0, width)
上述代码,会导致表格布局改变,从而触发表格的全局重绘,在这次重绘里,重设宽度过后的表头也能正常显示了。由于所有column和表头都没有设置自适应,所以这个重绘效率很高。最后profile结果如下: - 在设置自适应后,表格刷新耗时10ms内。但若要重新适配表头,则需要耗时10s左右。 - 关闭自适应,通过手动设置fixedWidth方式适配表头,数据刷新加适配表头,总体耗时不超过20ms。
QHeaderView *headerView = tableView->verticalHeader()headerView->setHidden(true)
QStringList header
header<<tr("Name")<<tr("Path")<<tr("随便改")
tableView->setHorizontalHeaderLabels(header)
在自定义QHeaderView的构造函数中加上:
原因:
(1)当QHeaderView的clickableSections属性为true时,表头才能响应点击事件。
(2)QHeaderView的clickableSections属性并没有在QHeaderView的初始化构造中默认设置为true,而是在QTableView等构造初始化时,构建默认的表头后通过setSectionsClickable(true)显式地设置为true,因此用自定义的QHeaderView代替QTableView的默认表头后,不会响应表头点击事件。
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)