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)!