此示例只是一个简单的文件的打开,读取,文件内容的加载,望共勉。
界面效果展示
代码实现
dialog.h
#ifndef DIALOG_H
#define DIALOG_H#include <QDialog>namespace Ui {
class Dialog;
}class Dialog : public QDialog
{Q_OBJECTpublic:explicit Dialog(QWidget *parent = nullptr);~Dialog();private slots:void on_pushButton_clicked();void on_lineEdit_textChanged(const QString &arg1);private:Ui::Dialog *ui;
};#endif // DIALOG_H
dialog.cpp
#include "dialog.h"
#include "ui_dialog.h"
#include <QDebug>
#include <QFileDialog>
#include <QFile>Dialog::Dialog(QWidget *parent) :QDialog(parent),ui(new Ui::Dialog)
{ui->setupUi(this);
}Dialog::~Dialog()
{delete ui;
}void Dialog::on_pushButton_clicked()
{
// ui->lineEdit->clear();//先清空文件路径,起初的目的是防止多次使用选择文件路径时路径追加,后发现没有必要,每次路径都是重新覆盖上一次的路径QString strPath = QDir::currentPath();QString strFileFliter = tr("源文件(*.h *.cpp)");QString strFilePath = QFileDialog::getOpenFileName(this,tr("选择文件"),strPath,strFileFliter);if(strFilePath.isEmpty()){qDebug()<<tr("%1文件路径为空").arg(strFilePath)<<endl;return ;}ui->lineEdit->setText(strFilePath);
}void Dialog::on_lineEdit_textChanged(const QString &arg1)
{QFile file(arg1);if(!file.open(QIODevice::ReadOnly | QIODevice::Text)){qDebug()<<tr("%1文件打开失败").arg(arg1)<<endl;return ;}QTextStream in(&file);QString strContent = in.readAll();ui->plainTextEdit->setPlainText(strContent);//appendPlainText(strContent)此函数会在原有文本的基础上追加,而setPlainText()则直接覆盖,显示当前文本file.close();
}
mian.cpp
#include "dialog.h"
#include <QApplication>int main(int argc, char *argv[])
{QApplication a(argc, argv);Dialog w;w.show();return a.exec();
}
运行效果
此实例比较简单,只用了两个槽函数来实现具体功能,特此记录,不积硅步,无以成江河。