首先需要在ui中加入一个button命名为FileButton lineEdit显示文件路径 textEdit显示文件中的内容。
方法一:相对比较麻烦
#include "mainwindow.h"
#include "ui_mainwindow.h"
#include <QFileDialog>
MainWindow::MainWindow(QWidget *parent)
: QMainWindow(parent)
, ui(new Ui::MainWindow)
{
ui->setupUi(this);
connect(ui->FileButton, &QPushButton::clicked,this,&MainWindow::OnFileBtnClicked)
}
MainWindow::~MainWindow()
{
delete ui;
}
void MainWindow::OnFileBtnClicked()
{
QString fileName = QFileDialog::getOpenFileName(this,"choose file","./");
ui->lineEdit->setText(fileName);
QFile file(fileName); //构建文件对象 对文件做操作
//如果文件打开失败的推出
if(!file.open(QIODevice::ReadOnly))
return;
//判断文件结尾
while(file.atEnd())
{
char str[1024] = {0};
file.readLine(str,sizeof str);
ui->textEdit->append(str);
}
file.close();
}
方法二:
void MainWindow::on_FileButton_clicked()
{
QString fileName = QFileDialog::getOpenFileName(this,"choose file","./");
ui->lineEdit->setText(fileName);
QFile file(fileName); //构建文件对象 对文件做操作
//如果文件打开失败的推出
if(!file.open(QIODevice::ReadOnly))
return;
QByteArray arr; //字节数组
//判断文件结尾
while(file.atEnd())
{
arr += file.readLine();
}
ui->textEdit->setText(arr);
file.close();
}
文件写入并且保存为新文件
加入button SaveAsButton,转到槽
void MainWindow::on_SaveAsButton_clicked()
{
QFileDialog::getSaveFileName(this,"save as","./","*.docx"); //文件路径 过滤
QFile file(filename); //创建文件对象
if(!file.open(QIODevcie::WriteOnly)) //打开文件用于写
return;
//文本框内容
QString text = ui->textEdit->toPlainText();
file.write(text.toUtf8()); //toUtf8()转化为字节数组QByteArray
file.close();
}