NoteBook三个功能初步实现

本文详细描述了一个NoteBook应用中打开、保存文件以及关闭功能的槽函数实现,包括文件选择对话框、文本流操作和文本框内容处理,同时提到了存在的小Bug。
摘要由CSDN通过智能技术生成

NoteBook三个功能初步实现

一、打开功能

有了前面对文件操作的学习,现在设置按钮的槽函数功能应该是非常容易了。

//“打开”按钮槽函数
void Widget::on_pushButton_open_clicked()
{
    //选择需要打开的文件和文件的类型。(单个)
    QString fileName = QFileDialog::getOpenFileName(this, tr("Open File"),
                                                     "D:/c++QT/lessonDemo/noteBookProject",
                                                     tr("Text files (*.txt *.doc)"));

    qDebug()  <<fileName;

    //打开下一个文件,把上一个文件内容覆盖清空。
    ui->textEdit->clear();

    //打开文本文件
    file.setFileName("D:/c++QT/lessonDemo/noteBookProject/test.txt");
    if(!file.open(QIODevice::ReadOnly | QIODevice::Text)){
        qDebug()<<"open error";

    }

    //读取
    QTextStream in(&file);
    in.setCodec("UTF-8");

    //QString context = in.read(file.size());方法一:按照大小整个读
    //方法二:如果没到尾部,一行一行的读。
    while(!in.atEnd()){
        QString context = in.readLine();
        qDebug() << context;
        //qDebug() << "=============";

        //将文件内容显示到文本编辑框
        //ui->textEdit->setText(context);
        ui->textEdit->append(context);
    }

    //关闭
    //file.close();
}

在这里插入图片描述

二、保存功能

//“保存”按钮槽函数
void Widget::on_pushButton_save_clicked()
{
    QString fileName = QFileDialog::getSaveFileName(this, tr("Save File"),
                               "D:/c++QT/lessonDemo/noteBookProject/untitled.txt",
                               tr("Text (*.txt)"));
    qDebug()<< fileName;

    //写入文件
    file.setFileName(fileName);
    if(!file.open(QIODevice::WriteOnly | QIODevice::Text)){
        qDebug()<<"open error";

    }

    QTextStream out(&file);
    out.setCodec("UTF-8");

    //把内容从控件捕获,而不是简单的调试输出
    QString context = ui->textEdit->toPlainText();
    out << context ;

    //file.close();
}

在这里插入图片描述

三、关闭功能

/*
 “关闭”按钮槽函数。清空文本框内容
将其设置为整个类的成员数据,共享这个成员数据。不然关闭后就啥都没有
将QFile file设置为头文件中的公共属性;

*/

//头文件
public:
    QFile file;//将QFile file设置为头文件中的公共属性;
    Widget(QWidget *parent = nullptr);
    ~Widget();


void Widget::on_pushButton_close_clicked()
{
    //isOpen。 file父类的父类实现的
    if(file.isOpen()){
        file.close();
        ui->textEdit->clear();

    }
}

点击关闭按钮,清空文本框内容
在这里插入图片描述
初步实现了三个功能,但还是有些小Bug。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值