学习C++、QT---24(QT实现记事本项目的打开、保存、关闭)

每日一言

        别怕失败,那些打不倒你的,终将让你更强大。

实现记事本的打开

我们给这个打开的按键都给转到槽,那么我们去实现槽函数

void Widget::on_openButton_clicked()

{

    QString fileName = QFileDialog::getOpenFileName(thistr("file open"),

                                                    "E:/qianrushi/QT/QTcodeLesson",

                                                    tr("Text (*.txt *.doc)"));

    this->setWindowTitle(fileName+"---MyNoteBook");

    ui->textEdit->clear();

    file.setFileName(fileName);

    file.open(QIODevice::ReadOnly|QIODevice::Text);

    QTextStream in(&file);

    in.setCodec(ui->comboBox->currentText().toStdString().c_str());

    while(!in.atEnd()){

       QString context = in.readLine();

       ui->textEdit->append(context);//追加到文本的末尾

    }

}

很明显我们的槽函数就是写我们的文件选择框了因为点击这个打开按键后就是打开文件选择框,还有配合QFile和QTextStream进行读取文件并显示到textEdit上

实现记事本的保存

void Widget::on_saveButton_clicked()

{

    QString fileName = QFileDialog::getSaveFileName(thistr("file save"),

                               "E:/qianrushi/QT/QTcodeLesson/untitled.txt",

                               tr("Text(*.txt *.doc *.docx)"));

    this->setWindowTitle(fileName+"---MyNoteBook");

    file.setFileName(fileName);

    file.open(QIODevice::WriteOnly|QIODevice::Text);

    QTextStream out(&file);

    QString context =ui->textEdit->toPlainText();

    out <<context;

}

我们发现一个问题

就是之前我将保存按键的那个编码也写死了,但是后面我做完项目回来,发现如果我保存后,切换编码的时候会出现程序卡死的状况,所以写完程序后需要将写死的编码删掉

为什么使用这个toplainText

toPlainText()

返回纯文本,是最常用的获取文本内容的方法。

常用于文本的处理,就是将我们写的文本给全部捕获

然后我们用out<<context进行输出,写入到文件里面

实现记事本的关闭

void Widget::on_closeButton_clicked()

{

    this->setWindowTitle("MyNoteBook");

    if(file.isOpen()){

        ui->textEdit->clear();//清屏

        file.close();

    }

    ui->textEdit->clear();

}

很简单就是判断一下一个是如果文件是open的状态那么我们就先清屏,随后关闭文件,最后面还有一句这个clear是我为了我没有打开文件的时候,输入文本,当我点击这个关闭按钮的时候可以清屏

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

热爱嵌入式的涛涛同学

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值