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

Qt常用控件之表格QTableWidget

表格QTableWidget

QTableWidget 是一个表格控件,行和列交汇形成的每个单元格,是一个 QTableWidgetItem 对象。

1. QTableWidget属性

QTableWidget 的属性只有两个:

属性说明
rowCount当前行的个数。
columnCount当前列的个数。

2. QTableWidget信号

信号说明
cellClicked(int row, int column)点击单元格时触发。
cellDoubleClicked(int row, int column)双击单元格时触发。
cellEntered(int row, int column)鼠标进入单元格时触发。
currentCellChanged(int row, int column,int previousRow, int previousColumn)选中不同单元格时触发。

3. QTableWidget方法

方法说明
item(int row, int column)根据行数列数获取单元格的 QTableWidgetItem*
setItem(int row, int column, QTableWidgetItem*)根据行数列数设置单元格中的元素。
currentItem()返回被选中的元素 QTableWidgetItem*
currentRow()返回被选中的是第几行。
currentColumn()返回被选中的是第几列。
row(QTableWidgetItem*)获取指定 item 是第几行。
column(QTableWidgetItem*)获取指定 item 是第几列。
rowCount()获取行数。
columnCount()获取列数。
insertRow(int row)在第 row 行处插入新行(新行变为第 row 行)。
insertColumn(int column)在第 column 列插入新列(新列变为第 column 列)。
removeRow(int row)删除第 row 行。
removeColumn(int column)删除第 column 列。
setHorizontalHeaderItem(int column, QTableWidget*)设置指定列的表头。
setVerticalHeaderItem(int row, QTableWidget*)设置指定行的表头。

4. QTableWidgetItem方法

方法说明
row()获取当前是第几行。
column()获取当前是第几列。
setText(const QString&)设置文本。
setTextAlignment(int)设置文本对齐。
setIcon(const QIcon&)设置图标。
setSelected(bool)设置能否被选中。
setSizeHints(const QSize&)设置尺寸。
setFont(const QFont&)设置字体。

5. 使用QTableWidget制作一个表格编辑器

表格编辑器的大部分功能 Qt 都已经提供了,我们只需要制作几个添加行首、列首之类的接口即可:

#include "widget.h"
#include "ui_widget.h"

Widget::Widget(QWidget *parent)
    : QWidget(parent)
    , ui(new Ui::Widget)
{
    ui->setupUi(this);
    ui->lineEdit->setPlaceholderText("输入新增的列名");
}

Widget::~Widget()
{
    delete ui;
}

void Widget::on_pushButton_addRow_clicked()
{
    int row =ui->tableWidget->rowCount();
      ui->tableWidget->insertRow(row);
}


void Widget::on_pushButton_addColumn_clicked()
{
    QString content=ui->lineEdit->text();
    if(content.isEmpty())
    {
        return;
    }
    int column =ui->tableWidget->columnCount();
    ui->tableWidget->insertColumn(column);
    ui->tableWidget->setHorizontalHeaderItem(column,new QTableWidgetItem(content));

}

void Widget::on_pushButton_deleteRow_clicked()
{
    int curRow=ui->tableWidget->currentRow();
    ui->tableWidget->removeRow(curRow);
}

void Widget::on_pushButton_deleteColumn_clicked()
{
    int curColumn=ui->tableWidget->currentColumn();
    ui->tableWidget->removeremoveColumn(curColumn);
}

QTableWidget1

相关文章:

  • openharmony 软总线-设备发现流程
  • OSPF网络类型:NBMA与P2MP
  • K8s 1.27.1 实战系列(七)Deployment
  • 第八节:基于Winform框架的串口助手小项目---完结优化《C#编程》
  • HTML 属性(详细易懂)
  • Manus全球首个通用Agent,Manus AI:Agent应用的ChatGPT时刻
  • Wpf-ReactiveUI-Usercontrol与主界面交互
  • 大语言模型学习--向量数据库基础知识
  • 本地运行Manus的替代方案:OpenManus的技术解析与实践指南
  • 【入门级篇】Dify安装+DeepSeek模型配置保姆级教程
  • 避免魔法值和多层if的关键:编程范式和设计模式
  • 关于优化B站关键词排名策略
  • FPGA学习篇——Verilog学习3(关键字+注释方法+程序基本框架)
  • VC++ 获取目的IP的路由
  • python导入语句的几点说明
  • OpenCV计算摄影学(14)实现对比度保留去色(Contrast Preserving Decolorization)的函数decolor()
  • TypeError: Cannot create property ‘xxx‘ on string ‘xxx‘
  • HTTP 与 HTTPS 协议:从基础到安全强化
  • C语言学习知识点总结(适合新手/考试复习)
  • 项目--高并发CPP内存池,低配版本
  • 怎么做物物交换网站/广州网站维护
  • 制作网站建网站/怎么自己做一个网页
  • 做网站百度云/网上培训
  • 建设银行悦生活网站/百度网页版怎么切换
  • 西安建设市场信息平台/东莞百度seo新网站快速排名
  • 沈阳世纪兴网站建设/网站排名优化教程