tablewidget 合并单元格后怎么 选中两行行
时间: 2023-08-28 21:03:34 浏览: 164
qt6单元格合并WidgetTableDemo
在Qt的QTableWidget中,当有行或列被合并后,由于该行或列只有一个单元格是可编辑的,所以如果需要选择其中的某些行或列,需要分别选择每个合并单元格中的行或列。
以下是一个示例代码:
```cpp
// 获取选中的行号
QList<int> selected_rows;
foreach (QTableWidgetItem *item, ui->tableWidget->selectedItems()) {
int row = item->row();
if (!selected_rows.contains(row)) {
selected_rows.append(row);
}
}
// 遍历每一个选中的行
foreach (int row, selected_rows) {
// 获取该行的合并单元格的范围
int span_row, span_col, row_count, col_count;
ui->tableWidget->getSpan(row, 0, &span_row, &span_col, &row_count, &col_count);
// 如果该行是合并单元格的一部分,将合并单元格中的所有行都选中
if (row == span_row) {
for (int i = span_row; i <= span_row + row_count - 1; ++i) {
ui->tableWidget->selectRow(i);
}
}
// 如果该行不是合并单元格的一部分,直接选中该行
else {
ui->tableWidget->selectRow(row);
}
}
```
这段代码假设第一列是要合并单元格的列,如果合并单元格是在其他列,需要将代码中的0改为对应的列号。
阅读全文