Qt中的文本操作

使用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() ;  // 关闭文本文件
    }

}

三、实现效果展示

文件文本信息的打开,修改信息后对文件进行保存。。。

 

未完待续


有疑问的小伙伴可以留言一起交流讨论!!!

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值