QTableWidget 是 Qt 框架中的一个表格控件,用于显示和编辑表格数据。行数是表格的基本组成部分,可以通过编程方式进行操作。
// 删除指定行
void removeRow(int row);
// 示例:删除第2行(索引从0开始)
ui->tableWidget->removeRow(1);
// 删除所有行
ui->tableWidget->setRowCount(0);
// 隐藏指定行
void setRowHidden(int row, bool hide);
// 示例:隐藏第3行
ui->tableWidget->setRowHidden(2, true);
// 设置行高为0来隐藏行
ui->tableWidget->setRowHeight(row, 0);
// 删除行的完整示例
void MainWindow::deleteSelectedRows()
{
// 获取所有选中的行
QList<QTableWidgetItem*> selectedItems = ui->tableWidget->selectedItems();
// 使用集合避免重复行
QSet<int> rowsToRemove;
foreach(QTableWidgetItem* item, selectedItems) {
rowsToRemove.insert(item->row());
}
// 从大到小删除,避免索引变化问题
QList<int> rows = rowsToRemove.toList();
std::sort(rows.begin(), rows.end(), std::greater<int>());
foreach(int row, rows) {
ui->tableWidget->removeRow(row);
}
}
// 隐藏行的完整示例
void MainWindow::hideSelectedRows()
{
QList<QTableWidgetItem*> selectedItems = ui->tableWidget->selectedItems();
QSet<int> rowsToHide;
foreach(QTableWidgetItem* item, selectedItems) {
rowsToHide.insert(item->row());
}
foreach(int row, rowsToHide) {
ui->tableWidget->setRowHidden(row, true);
}
}
选择删除还是隐藏取决于具体需求:如果需要永久移除数据,使用删除;如果只是临时不显示,使用隐藏。