如果一個QTableView使用setSpan合并后,數據更新后,還要繼續使用setSpan再次合并(主要是要對全表格進行重新的單元格合并,已經合并過的地方行列又要重新進行新的合并,因為數據已經更新),這時不能直接使用setSpan,而是要先把QTableView的row還原為原來沒有合并行列的情形,再次使用setSpan,否則顯示很可能就會發生錯誤:
if (model != 0) {
// 恢復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);
}