Qt tableWidget的使用: 从文件读数据,动态添加到表格中显示

Qt tableWidget的使用: 从文件读数据,动态添加到表格中显示
需要从一个有序的文件中读取数据,显示到表格里面

2.代码实现
2.0 注意点
建立表格必须先设置列数,不然表格无法显示
对文件操作,记住要关闭
动态添加行的理解,第一次插入数据,当前行数为0,正好插入的是第0行(实际上看到的是第一行,下一次插入数据,此时行数为1,正好插入第1行(实际上看到的是第二行),下面依次类推
        int rowCount = ui->tableWidget->rowCount();
        ui->tableWidget->insertRow(rowCount);
1
2
2.1 需要的头文件
#include <QFile>
#include <QTextStream>
1
2
2.2 正文
    //设置表格的列数,必须要先设置,不然表格显示不出来
    ui->tableWidget->setColumnCount(4);
    //建立表头
    QStringList header;
    header << "col0" << "col1" << "col2" << "col3";
    ui->tableWidget->setHorizontalHeaderLabels(header);
    //设置表头显示模式,这里设置的是拉伸模式
    ui->tableWidget->horizontalHeader()->setSectionResizeMode(QHeaderView::Stretch);

    //从文件读取数据
    QFile f("../test.txt");
    f.open(QIODevice::ReadOnly | QIODevice::Text);
    QTextStream output(&f);
    output.setCodec("UTF-8");
    QHash<QString, QString> varHash;
    QString lineStr;//文件的每一行的字符串
    QStringList lineList; //整行字符串,分割处理为单个字符串,存入到表中
    varHash.clear();
    lineList.clear();//操作前,清空
    //遍历文件
    while(!output.atEnd())
    {
        lineStr = output.readLine(); //读取文件的一行
        lineList = lineStr.split('\t'); //去除换行符获取字符串,存放到表中
        //向表里面动态添加参数
        int rowCount = ui->tableWidget->rowCount();
        ui->tableWidget->insertRow(rowCount);
        for(int i = 0; i < 4; i++)
        {
            ui->tableWidget->setItem(rowCount,i,new QTableWidgetItem(lineList[i]));
        }
    }
    f.close();//关闭文件

3. 结果显示




4. 参考
Qt tablewidget用法总结
————————————————
版权声明:本文为CSDN博主「Swichil」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/weixin_42235198/article/details/109314320
posted @ 2022-09-16 09:02  张莽的博客  阅读(3263)  评论(0)    收藏  举报