Qt 5.1 tableWidget合并单元格 选中所有合并行
时间: 2023-10-25 17:07:52 浏览: 105
以下是一个示例代码:
```cpp
// 获取所有选中区域
QList<QTableWidgetSelectionRange> selected_ranges = ui->tableWidget->selectedRanges();
// 遍历每一个选中区域
for (int i = 0; i < selected_ranges.count(); ++i) {
// 获取选中区域的起始行和结束行
int start_row = selected_ranges.at(i).topRow();
int end_row = selected_ranges.at(i).bottomRow();
// 遍历选中区域中的每一行
for (int row = start_row; row <= end_row; ++row) {
// 获取该行的合并单元格的范围
int span_row, span_col, row_count, col_count;
ui->tableWidget->getSpan(row, 0, &span_row, &span_col, &row_count, &col_count);
QTableWidgetSelectionRange span_range(span_row, span_col, span_row + row_count - 1, span_col + col_count - 1);
// 如果该行是合并单元格的一部分,将合并单元格中的所有行都选中
if (span_range.isValid() && span_range.topRow() == row) {
for (int i = span_row; i <= span_range.bottomRow(); ++i) {
ui->tableWidget->selectRow(i);
}
}
}
}
```
这段代码假设第一列是要合并单元格的列,如果合并单元格是在其他列,需要将代码中的0改为对应的列号。
阅读全文