QTableWidget合并单元格及常见用法

文章目录[隐藏]

前言

前几天在做项目过程中需要使用到QTableWidget 合并单元格,于是查看了官方文档,查看到setSpan方法可以使用。于是做了一个小 Demo

QTableWidget 合并单元格函数原型及说明

函数原型
void QTableView::setSpan(int row, int column, int rowSpanCount, int columnSpanCount)
参数解释
row: 代表要合并的单元格行索引。如:要合并 1-10 行,则此处为行的索引。

col:  代表要合并的单元格列索引。如:要合并第 1 列(列数从 0 开始),则此处为列的索引。

rowSpanCount: 要合并多少行。如: 要合并 1-10 行,共 10 行。则此处为: 10。

columnSpanCount: 要合并多少列。如: 要合并为 2 列,则此处为: 2。

QTableWidget 合并单元格 Demo 代码

QStringList headerList;
headerList << "ID" << QStringLiteral("歌曲标题") << QStringLiteral("时长")
           << QStringLiteral("歌手") << QStringLiteral("专辑")
           << QStringLiteral("播放次数");

ui->tableWidget->setShowGrid(true); // 显示表格线
ui->tableWidget->setSelectionBehavior(QAbstractItemView::SelectRows); // 设置选择模式
ui->tableWidget->verticalHeader()->setDefaultSectionSize(10);
ui->tableWidget->horizontalHeader()->setSectionResizeMode(QHeaderView::ResizeToContents);
ui->tableWidget->verticalHeader()->setSectionResizeMode(QHeaderView::ResizeToContents);

ui->tableWidget->setFrameShape(QFrame::NoFrame); // 去掉边框
ui->tableWidget->setSelectionMode(QAbstractItemView::SingleSelection); // 设置单选
ui->tableWidget->horizontalHeader()->setVisible(true); // 隐藏行表头
ui->tableWidget->verticalHeader()->setVisible(false);   // 隐藏列表头


int rows = 50;
ui->tableWidget->setColumnCount(headerList.length());
ui->tableWidget->setRowCount(rows);
ui->tableWidget->setHorizontalHeaderLabels(headerList);

for(int row = 0; row < rows; ++row)
{
    for(int col = 0; col < headerList.length(); ++col)
    {
        if(col == 0)
        {
            ui->tableWidget->setItem(row, col, new QTableWidgetItem(QString("100%1").arg(row+1)));
        }
        else if(col == 1)
        {
            if(row < 10)
            {
                ui->tableWidget->setItem(row, col, new QTableWidgetItem(QStringLiteral("汪苏泷")));
            }
            else if( row >= 10 && row < 20)
            {
                ui->tableWidget->setItem(row, col, new QTableWidgetItem(QStringLiteral("薛之谦")));
            }
            else if( row >= 20 && row < 30)
            {
                ui->tableWidget->setItem(row, col, new QTableWidgetItem(QStringLiteral("陈奕迅")));
            }
            else if( row >= 30 && row < 40)
            {
                ui->tableWidget->setItem(row, col, new QTableWidgetItem(QStringLiteral("郁可唯")));
            }
            else if( row >= 40 && row < 50)
            {
                ui->tableWidget->setItem(row, col, new QTableWidgetItem(QStringLiteral("邓紫棋")));
            }
            ui->tableWidget->setSpan(row, col, 10, 2);
        }
        else{
            ui->tableWidget->setItem(row, col, new QTableWidgetItem(QString("row-%1__col-%2").arg(row).arg(col)));
        }
    }
}

QTableWidget合并单元格及常见用法插图
  • 0
    点赞
  • 13
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值