文章目录
- QTabWidget核心属性、方法和信号
- 使用示例
QTabWidget核心属性、方法和信号
QTableWidget表示一个表格控件,一个表格中包含若干行,每一行包含若干列。
表格中的每一个单元格,是一个QTableWidgetItem对象。
QTableWidget核心方法:
| 方法 | 说明 |
|---|---|
| item(int row, int column) | 根据行数列数获取指定的QTableWidgetItem* |
| setItem(int row, int column, QTableWidget* ) | 根据行数列数设置表格中的元素 |
| currentItem() | 返回被选中的元素QTableWidgetItem* |
| currentRow() | 返回被选中元素是第几行 |
| currentColumn() | 返回被选中元素是第几列 |
| row(QTableWidgetItem* ) | 获取指定item是第几行 |
| column(QTableWidgetItem* ) | 获取指定item是第几列 |
| rowCount() | 获取行数 |
| columnCount() | 获取列数 |
| insertRow(int row) | 在第row行插入新行 |
| insertColumn(int column) | 在第column列插入新列 |
| removeRow(int row) | 删除row行 |
| removeColumn(int column) | 删除column列 |
| setHorizontalHeaderItem(int column, QTableWidget* ) | 设置指定列的表头 |
| setVerticalHeaderItem(int row, QTableWidget* ) | 设置指定行的表头 |
QTableWidgetItem核心信号:
| 信号 | 说明 |
|---|---|
| cellClicked(int row, int column) | 点击单元格时触发 |
| cellDoubleClicked(int row, int column) | 双击单元格触发 |
| cellEntered(int row, int column) | 鼠标进入单元格时触发 |
| currentCellChanged(int row, int column, int previousRow, int previousColumn) | 选中不同单元格触发 |
QTableWidgetItem核心方法:
| 方法 | 说明 |
|---|---|
| row() | 获取当前第几行 |
| column() | 获取当前第几列 |
| setText(const QString&) | 设置文本 |
| setTextAlignment(int) | 设置文本对齐 |
| setIcon(const QIcon&) | 设置图标 |
| setSelected(bool) | 设置被选中 |
| setSizeHints(const QSize&) | 设置尺寸 |
| setFont(const QFont&) | 设置字体 |
使用示例
页面属性设置:

图形化界面编辑:

同理,如果初始化界面的数据是固定的,可以采用图形化界面方式编辑;
如果需要通过文件/网络加载,就需要通过代码了
代码编辑:
#include "widget.h"
#include "ui_widget.h"
Widget::Widget(QWidget *parent)
: QWidget(parent)
, ui(new Ui::Widget)
{
ui->setupUi(this);
//创建3行 下标必须从0开始
ui->tableWidget->insertRow(0);
ui->tableWidget->insertRow(1);
ui->tableWidget->insertRow(2);
//创建3列
ui->tableWidget->insertColumn(0);
ui->tableWidget->insertColumn(1);
ui->tableWidget->insertColumn(2);
//给列设置指定列名
ui->tableWidget->setHorizontalHeaderItem(0, new QTableWidgetItem("学号"));
ui->tableWidget->setHorizontalHeaderItem(1, new QTableWidgetItem("姓名"));
ui->tableWidget->setHorizontalHeaderItem(2, new QTableWidgetItem("性别"));
//给表格添加数据
ui->tableWidget->setItem(0, 0, new QTableWidgetItem("2101"));
ui->tableWidget->setItem(0, 1, new QTableWidgetItem("张三"));
ui->tableWidget->setItem(0, 2, new QTableWidgetItem("男"));
ui->tableWidget->setItem(1, 0, new QTableWidgetItem("2102"));
ui->tableWidget->setItem(1, 1, new QTableWidgetItem("李四"));
ui->tableWidget->setItem(1, 2, new QTableWidgetItem("女"));
ui->tableWidget->setItem(2, 0, new QTableWidgetItem("2103"));
ui->tableWidget->setItem(2, 1, new QTableWidgetItem("王五"));
ui->tableWidget->setItem(2, 2, new QTableWidgetItem("男"));
}
Widget::~Widget()
{
delete ui;
}
void Widget::on_pushButton_insertRow_clicked()
{
//获取目前多少行
int rowCount = ui->tableWidget->rowCount();
//在最后一行之后插入
ui->tableWidget->insertRow(rowCount);
}
void Widget::on_pushButton_earseRow_clicked()
{
//获取选中行号
int curRow = ui->tableWidget->currentRow();
//删除选定行
ui->tableWidget->removeRow(curRow);
}
void Widget::on_pushButton_insertColumn_clicked()
{
//获取有多少列
int colCount = ui->tableWidget->columnCount();
//对应位置新增列
ui->tableWidget->insertColumn(colCount);
//设置列名(从输入框获取)
const QString& text = ui->lineEdit->text();
ui->tableWidget->setHorizontalHeaderItem(colCount, new QTableWidgetItem(text));
}
void Widget::on_pushButton_eraseColumn_clicked()
{
//获取列号
int curCol = ui->tableWidget->currentColumn();
//删除列
ui->tableWidget->removeColumn(curCol);
}








![[NSSRound#4 SWPU]hide_and_seek-用gdb调试](https://i-blog.csdnimg.cn/direct/64d705c03ef44f208a66d61e44dc4235.png)

![re题(25)BUUFCTF-[GUET-CTF2019]re](https://i-blog.csdnimg.cn/blog_migrate/05437e17bfb1189ab11a35ca9a1731a2.png)









