以下使用 Qt 和 C++ 实现的代码示例,展示如何使用表格布局将数据统计报表展现出来:

#include <QtWidgets>

int main(int argc, char *argv[])
{
    QApplication app(argc, argv);

    QWidget window;
    QVBoxLayout *layout = new QVBoxLayout(&window);

    // 创建常规表格
    QGroupBox *generalGroupBox = new QGroupBox('常规');
    QVBoxLayout *generalLayout = new QVBoxLayout(generalGroupBox);

    QFormLayout *generalFormLayout = new QFormLayout;
    generalFormLayout->addRow('名称:', new QLabel('xxx.pkt(后缓可改)'));
    generalFormLayout->addRow('长度:', new QLabel('XXMB'));
    generalFormLayout->addRow('类型:', new QLabel('1553B'));
    generalFormLayout->addRow('发送/接收:', new QLabel('1122'));
    generalFormLayout->addRow('协议:', new QLabel('xxx'));
    generalFormLayout->addRow('协议速率:', new QLabel('2.5Gbps'));
    generalFormLayout->addRow('理论带宽比:', new QLabel('10%'));
    generalFormLayout->addRow('信用值使能和禁止状态:', new QLabel('使能'));
    generalFormLayout->addRow('发送板卡:', new QLabel('ddd'));
    generalFormLayout->addRow('发送ID:', new QLabel('aa00'));
    generalFormLayout->addRow('目标ID:', new QLabel('dd00'));
    generalFormLayout->addRow('是否压缩(可删):', new QLabel('否'));

    generalLayout->addLayout(generalFormLayout);
    layout->addWidget(generalGroupBox);

    // 创建时间表格
    QGroupBox *timeGroupBox = new QGroupBox('时间');
    QVBoxLayout *timeLayout = new QVBoxLayout(timeGroupBox);

    QFormLayout *timeFormLayout = new QFormLayout;
    timeFormLayout->addRow('开始时间:', new QLabel);
    timeFormLayout->addRow('最后时间:', new QLabel);
    timeFormLayout->addRow('经过时间:', new QLabel);

    timeLayout->addLayout(timeFormLayout);
    layout->addWidget(timeGroupBox);

    // 创建统计表格
    QGroupBox *statGroupBox = new QGroupBox('统计');
    QVBoxLayout *statLayout = new QVBoxLayout(statGroupBox);

    QGridLayout *statGridLayout = new QGridLayout;
    statGridLayout->addWidget(new QLabel('发送'), 0, 0);
    statGridLayout->addWidget(new QLabel('接收'), 0, 1);
    statGridLayout->addWidget(new QLabel('字节数'), 1, 0);
    statGridLayout->addWidget(new QLabel('帧数'), 2, 0);
    statGridLayout->addWidget(new QLabel('平均 MB/s'), 3, 0);
    statGridLayout->addWidget(new QLabel('收/发报文数'), 4, 0);
    statGridLayout->addWidget(new QLabel('发送定制错误报文数'), 5, 0);
    statGridLayout->addWidget(new QLabel('帧错误个数'), 6, 0);

    statGridLayout->addWidget(new QLabel('帧错误类型统计'), 7, 0);
    statGridLayout->addWidget(new QLabel('CRC错误统计'), 7, 1);
    statGridLayout->addWidget(new QLabel('超长帧统计'), 8, 1);
    statGridLayout->addWidget(new QLabel('超短帧统计'), 9, 1);
    statGridLayout->addWidget(new QLabel('定界符错误统计'), 10, 1);
    statGridLayout->addWidget(new QLabel('极性错误统计'), 11, 1);

    statGridLayout->addWidget(new QLabel('数量'), 8, 0);
    statGridLayout->addWidget(new QLabel('帧错误率'), 9, 0);

    statLayout->addLayout(statGridLayout);
    layout->addWidget(statGroupBox);

    window.setLayout(layout);
    window.show();

    return app.exec();
}

这段代码使用 Qt 的布局管理器创建了一个窗口,并在窗口中使用 QGroupBox、QFormLayout 和 QGridLayout 实现表格布局。其中,常规表格使用了 QFormLayout,时间表格也使用了 QFormLayout,统计表格使用了 QGridLayout。通过调用 addWidget 函数将表格添加到布局中,并最终将布局设置给窗口对象。最后,调用 app.exec() 进入 Qt 的事件循环,显示窗口。

Qt 和 C++ 实现数据统计报表表格展示

原文地址: https://www.cveoy.top/t/topic/pd19 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录