自学内容网 自学内容网

QTableWidget的简单使用

1.最简单的表格示例:

    ui->tableWidget->setRowCount(2);// 设置行数
    ui->tableWidget->setColumnCount(3);// 设置列数,一定要放在设置行表头之前
    
    QStringList rowHeaderList;// 行表头
    rowHeaderList << QStringLiteral("姓名");
    rowHeaderList << QStringLiteral("性别");
    rowHeaderList << QStringLiteral("年龄");
    ui->tableWidget->setHorizontalHeaderLabels(rowHeaderList);// 设置行表头
    
//    通常不设置列表头,默认会显示行号,以下是列表头的设置
//    QStringList columnHeaderList = {QStringLiteral("1"),QStringLiteral("2")}; // 列表头
//    ui->tableWidget->setVerticalHeaderLabels(columnHeaderList);// 设置列表头
//    ui->tableWidget->verticalHeader()->setVisible(false);// 设置列表头不可见

结果:
在这里插入图片描述

2.设置行表头将表格行填充满:

    // Interactive:用户可拖动改变列宽(默认);Fixed:固定列宽;Stretch:拉伸自适应列宽;ResizeToContents:根据内容设置列宽
    ui->tableWidget->horizontalHeader()->setSectionResizeMode(QHeaderView::Stretch);// 设置整体表头拉伸自适应列宽

结果:
在这里插入图片描述

3.设置行数(插入行数据时使用):

    ui->tableWidget_->setRowCount(3);// 设置表格为 3 行

结果:
在这里插入图片描述
4.获取表格总行数:

int total_row_count = ui->tableWidget_->rowCount();// 表格总行数

5.给单元格设置数据:

    // 给单元格设置数据,行数从 0 开始,(row,column)确定一个单元格
    ui->tableWidget_->setItem(row,column,new QTableWidgetItem(QStringLiteral("数据")));

6.默认单元格中的数据是靠左对齐的,如下设置单元格的数据居中对齐:

    QTableWidgetItem* username_item = new QTableWidgetItem(username);
    username_item->setTextAlignment(Qt::AlignCenter);// 设置单元格的数据居中对齐

7.设置表格行交替显示背景色:
方式1,可以在设计界面上直接设置:
在这里插入图片描述
方式2,使用代码设置:

ui->tableWidget_->setAlternatingRowColors(true);

结果:
在这里插入图片描述
8.显示和隐藏垂直表头、水平表头:

ui->tableWidget_->verticalHeader()->show();// 显示垂直表头
ui->tableWidget_->verticalHeader()->hide();

ui->tableWidget_->horizontalHeader()->show();// 显示水平表头
ui->tableWidget_->horizontalHeader()->hide();

9.设置表格中的单元格是否可编辑:

// 可编辑
ui->tableWidget_->setEditTriggers(
                    QAbstractItemView::DoubleClicked |
                    QAbstractItemView::SelectedClicked |
                    QAbstractItemView::EditKeyPressed);
    // 不可编辑
    ui->tableWidget_->setEditTriggers(QAbstractItemView::NoEditTriggers);

10.设置点击单元格时是单元格选中还是行选中:

// 单元格选中
ui->tableWidget_->setSelectionBehavior(QAbstractItemView::SelectItems);
// 行选中
ui->tableWidget_->setSelectionBehavior(QAbstractItemView::SelectRows);

结果1,单元格选中:
在这里插入图片描述
结果2,行选中:
在这里插入图片描述

11.表格信号:

void QTableWidget::itemClicked(QTableWidgetItem *item);// 点击单元格后可以获得单元格的内容(item)

实例:

// 下面的槽函数使用itemClicked(QTableWidgetItem *item)信号传过来的item
void TestTableWidget::ItemClicked(QTableWidgetItem *item)
{
    int row = item->row();// 获取当前点击的单元格的行
    QString username = ui->tableWidget_->item(row,0)->text();// 获取单元格的内容
    QString gender = ui->tableWidget_->item(row,1)->text();
    QString age = ui->tableWidget_->item(row,2)->text();
}

12.获取当前选中行并在当前行位置插入空行(插入行数据时使用):

int current_row_index = ui->tableWidget_->currentRow();// 获取当前选中行
ui->tableWidget_->insertRow(current_row_index);// 在当前行位置插入空行

13.删除当前选中行:

    int current_row_index = ui->tableWidget_->currentRow();// 获取当前选中行
    ui->tableWidget_->removeRow(current_row_index);// 删除当前选中行

14.修改单元格数据:

ui->tableWidget_->item(1,0)->setText(username);// 修改第1行第0列的单元格数据

原文地址:https://blog.csdn.net/qq_42432673/article/details/145071253

免责声明:本站文章内容转载自网络资源,如本站内容侵犯了原著者的合法权益,可联系本站删除。更多内容请关注自学内容网(zxcms.com)!