当前位置: 首页 > news >正文

Qt多元素控件——QTableWidget

文章目录

    • 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&)设置字体

使用示例

页面属性设置:

image-20240916112636768

图形化界面编辑:

image-20240916115501508

同理,如果初始化界面的数据是固定的,可以采用图形化界面方式编辑;

如果需要通过文件/网络加载,就需要通过代码了

代码编辑:

#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);
}

GIF 2024-9-16 12-46-43


http://www.mrgr.cn/news/28542.html

相关文章:

  • 京东Q3收入2064亿,活跃用户连续三季度双位数增长该咋看?
  • 数字化转型企业架构设计手册(交付版),企业数字化转型建设思路、本质、数字化架构、数字化规划蓝图(PPT原件获取)
  • 速盾:cdn 支持 php 吗?
  • 38配置管理工具(如Ansible、Puppet、Chef)
  • K8S创建云主机配置docker仓库
  • 初次体验Tauri和Sycamore(1)
  • Go小专栏 第一期
  • PostgreSQL的表压缩
  • 【C++题解】1997. 孤独的素数
  • ChatGPT有三个快捷指令和三个模式,你知道吗?
  • 为了有了ReentrantLock还需要ReentrantReadWriteLock?
  • golang学习笔记25——golang 实现 MD5加密、RSA加密 和 Base64编码
  • c#visionpro开发 方法统计
  • 【蓝牙协议栈】精讲蓝牙PCM和URAT
  • 九、并查集-算法总结
  • Linux进阶 修改文件权限
  • 坚持的力量--完成向CSDN迁移500篇技术文章阶段小记-以此自勉
  • Java应用的日志记录策略:有效监控与调试
  • Flask 第九课 -- 表单处理
  • DepthCrafter:为开放世界视频生成一致的长深度序列
  • AWS 将 OpenSearch 纳入 Linux 基金会旗下
  • Vue3 项目实战甄选硅谷
  • Double Write
  • 幼儿园自动分班工具:使用Python进行实现
  • 风力发电叶片缺陷检测数据集
  • 【机器学习】多模态AI——融合多种数据源的智能系统