【QTableWidget 表格使用(一)】

使用场景

​ 在许多小开发项目中,UI界面不用太复杂,同时只需要简单的人机交互和使用。

实现QTableWidget表格显示

显示效果

在这里插入图片描述

实现方式
void MainWindow::initInterface()
{
    /* 设置窗口大小 */
    this->resize(640,480);

    /* 不适用modle的方法直接快速创建一个简单表格 */
    /* 这种方式必须先设置表格的行列 */
    ui->voltable->setRowCount(8);
    ui->voltable->setColumnCount(5);
    
    /* 隐藏左边的表头,默认会显示序号 */
    QHeaderView *header1 = ui->voltable->verticalHeader();
    header1->setHidden(true);
    
    /* 显示单元格边框 */
    ui->voltable->setShowGrid(true);
    /* 设置表格内容字体 */
    ui->voltable->horizontalHeader()->setFont(QFont("song", 12));
    /* 不使用选中高亮 */
    ui->voltable->horizontalHeader()->setHighlightSections(false);
    
    /* 设置表头内容 */
    QStringList header;
    header<<"通道"<<"电压最大值"<<"电压最小值"<<"最大误差"<<"是否合格";
    ui->voltable->setHorizontalHeaderLabels(header);
    
    /* 默认显示内容 */
    for (int crowCount = 0; crowCount < 8; ++crowCount) {
         /* 设置每一行的行高 */
        ui->voltable->setRowHeight(crowCount,18);
        ui->voltable->setItem(crowCount,0,new QTableWidgetItem("CH"+QString::number(crowCount))); 
        /* 每一行的内容填充 */
        for(int j = 1; j<5; j++ ) {
            ui->voltable->setItem(crowCount,j,new QTableWidgetItem(QString::number(j)));
        }
    }

实现QTableWidget数据更新显示

显示效果

在这里插入图片描述

实现方式

​ ①创建一个定时器用于设置数据更新的频率

​ ②获取数据并更新到表格中

mTimer = new QTimer();
connect(mTimer,SIGNAL(timeout()),this,SLOT(updateChartData()));
/* 更新时间1s一次 */
mTimer->start(1000);

void MainWindow::updateChartData()
{
    /* 获取数据 */
    TestData testChartData = CalRealTime::GetInstance()->getTestData();

    for (int crowCount = 0; crowCount < 8; ++crowCount) {
        ui->voltable->setRowHeight(crowCount,18);
        ui->voltable->setItem(crowCount,0,new QTableWidgetItem("CH"+QString::number(crowCount)));
        /* 按照格式填充数据 */
        ui->voltable->item(crowCount,0)->setTextAlignment(Qt::AlignHCenter | Qt::AlignVCenter);
        ui->voltable->setItem(crowCount,1,new QTableWidgetItem(QString::number(testChartData.max[crowCount],'f',3)));
        ui->voltable->item(crowCount,1)->setTextAlignment(Qt::AlignHCenter | Qt::AlignVCenter);
        ui->voltable->setItem(crowCount,2,new QTableWidgetItem(QString::number(testChartData.min[crowCount],'f',3)));
        ui->voltable->item(crowCount,2)->setTextAlignment(Qt::AlignHCenter | Qt::AlignVCenter);
        ui->voltable->setItem(crowCount,3,new QTableWidgetItem(QString::number(testChartData.error[crowCount]*100,'f',3)+"%"));
        ui->voltable->item(crowCount,3)->setTextAlignment(Qt::AlignHCenter | Qt::AlignVCenter);
        QTableWidgetItem *testResult = new QTableWidgetItem();
        testResult->setTextAlignment(Qt::AlignHCenter | Qt::AlignVCenter);
        /* 设置为ICON显示 */
        if (testChartData.qualified[crowCount]) {
            testResult->setIcon(*testPassIcon);
        } else {
            testResult->setIcon(*testWrongIcon);
        }
        ui->voltable->setItem(crowCount,4,testResult);
    }
}


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值