如果一個(gè)QTableView使用setSpan合并后,數(shù)據(jù)更新后,還要繼續(xù)使用setSpan再次合并(主要是要對全表格進(jìn)行重新的單元格合并,已經(jīng)合并過的地方行列又要重新進(jìn)行新的合并,因?yàn)閿?shù)據(jù)已經(jīng)更新),這時(shí)不能直接使用setSpan,而是要先把QTableView的row還原為原來沒有合并行列的情形,再次使用setSpan,否則顯示很可能就會發(fā)生錯(cuò)誤:
if (model != 0) {
// 恢復(fù)QTableView的為未合并前的樣子
for (int i = 0; i < model->rowCount(); ++i) {
ui->tableView->setSpan(i, 1, 1, 1);
ui->tableView->setSpan(i, 10, 1, 1);
}
}
// 合并單元格
if (currentRow - firstRow != 1) {
ui->tableView->setSpan(firstRow, 1, rowSpan, 1);
ui->tableView->setSpan(firstRow, 10, rowSpan, 1);
}