Qt之读文件使用QProgressBar显示进度
/***************.h文件***************/ #ifndef WIDGET_H #define WIDGET_H #include <QWidget> using namespace std; namespace Ui { class Widget; } class Widget : public QWidget { Q_OBJECT public: explicit Widget(QWidget *parent = 0); ~Widget(); void readFile(QString fileName); public slots: void dealOpenFile(); private: Ui::Widget *ui; QString m_filePath; int m_totalLength; }; #endif // WIDGET_H /***************.cpp文件***************/ #include "widget.h" #include "ui_widget.h" #include <QFileDialog> #include <QFile> #include <QTextStream> #include <QDebug> #include <QTextCodec> #include <string> Widget::Widget(QWidget *parent) : QWidget(parent), ui(new Ui::Widget) { ui->setupUi(this); connect(ui->pushButton,SIGNAL(clicked()),this,SLOT(dealOpenFile())); } Widget::~Widget() { delete ui; } // 函数名称:读文件 // 作 者:ISMILE_LI void Widget::readFile(QString fileName) { QFile file(m_filePath); if(!file.open(QIODevice::ReadOnly | QIODevice::Text)) return; QTextStream out(&file); ui->progressBar->setRange(0,m_totalLength); QString readLines = ""; while(!out.atEnd()) { QString line = out.readLine(); //中文乱码转换 QTextCodec *codec = QTextCodec::codecForName("GBK"); QTextCodec::setCodecForLocale(codec); QByteArray ba = line.toLocal8Bit(); char* tempChar = ba.data(); string tempFile = tempChar; QString tempLine = QString::fromStdString(tempFile); qDebug() << tempLine; ui->plainTextEdit->appendPlainText(tempLine); readLines = readLines + line; int readLineLen = readLines.length(); ui->progressBar->setValue(readLineLen); } ui->progressBar->setValue(m_totalLength);// 不加这一句时,进度条达不到100%,没有找到原因 } // 函数名称:读文件 // 作 者:ISMILE_LI void Widget::dealOpenFile() { m_filePath = QFileDialog::getOpenFileName(this,tr("open file"),"../QScrollBarShowPrecent/", tr("files(*.cpp *.txt)")); QFile file(m_filePath); if(!file.open(QIODevice::ReadOnly | QIODevice::Text)) return; QTextStream out(&file); QString alltext = out.readAll(); m_totalLength = alltext.length(); readFile(m_filePath); }
原文:https://blog.csdn.net/toby54king/article/details/78640571
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· winform 绘制太阳,地球,月球 运作规律
· AI与.NET技术实操系列(五):向量存储与相似性搜索在 .NET 中的实现
· 超详细:普通电脑也行Windows部署deepseek R1训练数据并当服务器共享给他人
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 上周热点回顾(3.3-3.9)