这个函数并不能判断是否为首行啊
时间: 2024-02-28 14:53:38 浏览: 114
非常抱歉,我的回答有误。在QT5中,QTableWidgetItem的rowSpan()函数已经被废弃,取而代之的是QTableWidget::rowSpan()函数,而且该函数只能获取单元格的列合并数,不能获取行合并数。因此,要判断某一行中的第一列单元格是否为合并单元格,并确定该单元格所在的合并单元格的首行,需要使用以下代码:
```
int row = ui->tableWidget->currentRow();
int col = 0; // 第一列
int rowSpan = 1;
for (int i = 0; i < ui->tableWidget->columnCount(); ++i) {
QTableWidgetItem* item = ui->tableWidget->item(row, i);
if (item && item->row() == row && item->column() == col) {
rowSpan = item->rowSpan();
break;
}
}
if (rowSpan > 1) {
// 第一列单元格为合并单元格
int firstRow = row - rowSpan + 1;
// firstRow即为该单元格所在合并单元格的首行
}
```
其中,ui->tableWidget为QTableWidget对象,row为当前选中的行数,col为第一列的列数。该代码会遍历当前选中行中所有单元格,寻找第一列的单元格,然后获取该单元格的行合并数。如果第一列单元格为合并单元格,则通过计算该单元格所在的合并单元格的首行,可以确定该行是否是合并单元格的首行。
阅读全文