使用Qt实现对文本的新建、打开和保存功能,功能类似于文本文档
项目架构:
一、ui界面的设计
二、实现对应的功能
1、在 mainwindow.h中
定义对应的槽函数
// 添加头文件
#include <QFileDialog>
#include <QMessageBox>
#include <QDebug>
// 编写槽函数
private slots:
void newActionSlot() ; // 新建
void openActionSlot() ; // 打开
void saveActionSlot() ; // 保存
2、在mainwindow.cpp 中
实现信号与槽的连接,以及槽函数的实现
#include "mainwindow.h"
#include "ui_mainwindow.h"
MainWindow::MainWindow(QWidget *parent)
: QMainWindow(parent)
, ui(new Ui::MainWindow)
{
ui->setupUi(this);
// connect连接信号与槽
connect( ui->newAction, &QAction::triggered, this, &MainWindow::newActionSlot ) ;
connect( ui->openAction, &QAction::triggered, this, &MainWindow::openActionSlot ) ;
connect( ui->saveAction, &QAction::triggered, this, &MainWindow::saveActionSlot ) ;
}
MainWindow::~MainWindow()
{
delete ui;
}
// 新建
void MainWindow::newActionSlot()
{
ui->textEdit->clear();
this->setWindowTitle("新建文本文档.txt");
}
// 打开文件
void MainWindow::openActionSlot()
{
QString fileName = QFileDialog::getOpenFileName(this, "选择一个文件",
QCoreApplication::applicationFilePath(), // 选择默认打开的路径
"*.cpp") ; // 选择打开的文件类型
if(fileName.isEmpty() )
{
QMessageBox::warning(this, "警告", "请选择一个文件");
}
else
{
// qDebug() << fileName ;
QFile file(fileName) ; // 创建文本文件
file.open(QIODevice::ReadOnly ) ; // 只读的形式打开
QByteArray ba = file.readAll(); // 读取文本信息
ui->textEdit->setText(QString(ba)) ; // 显示文本信息
file.close() ; // 关闭文本文件
}
}
// 另存为文件
void MainWindow::saveActionSlot()
{
// 获取要保存的文件的路径
QString fileName = QFileDialog::getSaveFileName(this, "选择一个文件",
QCoreApplication::applicationFilePath() );
if(fileName.isEmpty())
{
QMessageBox::warning(this, "警告", "请选择一个文件") ;
}
else
{
QFile file(fileName) ; // 创建一个文件对象
file.open(QIODevice::WriteOnly); // 以只写的方式打开
QByteArray ba ;
// ui->textEdit->toPlainText(); // 获取text框中的文本信息
ba.append(ui->textEdit->toPlainText()); // 将文本信息QString转换为QByteArray
file.write(ba) ; // 将文本信息写入文件
file.close() ; // 关闭文本文件
}
}
三、实现效果展示
文件文本信息的打开,修改信息后对文件进行保存。。。
未完待续
有疑问的小伙伴可以留言一起交流讨论!!!