Qt TableWidget 找到重复行数据
时间: 2023-02-18 21:44:55 浏览: 254
您可以使用Qt的QTableWidget::findItems()函数来查找表格中的重复行数据。该函数接受一个QString参数,它将搜索表格中的所有单元格,并返回包含与该参数匹配的所有单元格的QList。
相关问题
qt create 删除tablewidget表中重复行删除
您可以使用以下代码来删除表格中的重复行:
```python
# 获取表格行数和列数
rowCount = tableWidget.rowCount()
colCount = tableWidget.columnCount()
# 遍历表格中的所有行
for i in range(rowCount):
# 获取当前行的数据
currentRow = []
for j in range(colCount):
currentRow.append(tableWidget.item(i,j).text())
# 检查当前行是否与之前的行重复
for k in range(i+1,rowCount):
duplicateRow = True
for j in range(colCount):
if currentRow[j] != tableWidget.item(k,j).text():
duplicateRow = False
break
# 如果当前行与之前的行重复,则删除当前行
if duplicateRow:
tableWidget.removeRow(k)
rowCount -= 1
k -= 1
```
这段代码会遍历表格中的所有行,检查是否有重复的行,并删除重复的行。请注意,这段代码是Python代码,您需要将其转换为符合Qt的C++代码。
qt create 取tablewidget一列数据,去除空和重复内容,举例
好的,您可以使用以下代码来实现:
```cpp
// 获取 tableWidget 的列数和行数
int rows = ui->tableWidget->rowCount();
int cols = ui->tableWidget->columnCount();
// 获取需要处理的列数,这里假设是第一列
int targetCol = 0;
// 创建一个 set 用于存储不重复的数据
QSet<QString> data;
// 遍历 tableWidget 中指定列的所有数据,去除空和重复内容
for (int i = 0; i < rows; i++) {
QTableWidgetItem* item = ui->tableWidget->item(i, targetCol);
if (item != nullptr) {
QString value = item->text();
if (!value.isEmpty()) {
data.insert(value);
}
}
}
// 将 set 中的数据重新写入 tableWidget 中指定的列
ui->tableWidget->clearContents();
int i = 0;
for (const auto& value : data) {
QTableWidgetItem* item = new QTableWidgetItem(value);
ui->tableWidget->setItem(i++, targetCol, item);
}
```
这段代码会获取 tableWidget 中第一列的所有数据,去除其中的空内容和重复内容,并将剩余的内容重新写入 tableWidget 中第一列。您可以根据需要修改代码中的目标列数和 tableWidget 对象指针。
阅读全文