完成文本编辑器的保存工作
//保存按钮对应的槽函数
void Widget::on_saveBtn_clicked()
{//文本编辑器的保存工作QString fileName=QFileDialog::getSaveFileName(this, //父组件"选择要保存的文件", //对话框标题"./", //起始路径"All(*.*);;Images(*.png *.jpg *.xpm);;Text files (*.txt)");//过滤器//判断是否选择文件if(fileName.isNull()){QMessageBox::information(this,"提示","用户取消了保存文件");return;}qDebug()<<fileName; //得到文件路径//文件操作//1、实例化一个文件对象QFile file(fileName);file.open(QIODevice::WriteOnly);//创建文件,且权限为只写QString msg = ui->textEdit->toPlainText();//获取编辑器的文本内容QByteArray saveName;saveName.append(msg);file.write(saveName);file.close();}
.h
#ifndef WIDGET_H
#define WIDGET_H#include <QWidget>
#include<QTimerEvent>
#include<QTime>
#include<QLabel>
#include<QLineEdit>
#include<QTextToSpeech> //文本转语音类
#include<QVoice>QT_BEGIN_NAMESPACE
namespace Ui { class Widget; }
QT_END_NAMESPACEclass Widget : public QWidget
{Q_OBJECTpublic:Widget(QWidget *parent = nullptr);~Widget();void timerEvent(QTimerEvent *e) override;private slots:void on_btn2_clicked();void on_btn1_clicked();private:Ui::Widget *ui;int timer_id; //定时器的id号QLabel *label;//定义一个播报员QTextToSpeech *speecher;};
#endif // WIDGET_H
cpp
#include "widget.h"
#include "ui_widget.h"Widget::Widget(QWidget *parent): QWidget(parent), ui(new Ui::Widget)
{ui->setupUi(this);timer_id=this->startTimer(1);ui->lineEdit->setPlaceholderText("闹钟时间");//给播报员实例化空间speecher=new QTextToSpeech(this);}Widget::~Widget()
{delete ui;
}//定时器事件处理函数
void Widget::timerEvent(QTimerEvent *e)
{if(e->timerId()==timer_id) //说明定时器1到位{QTime sys_t=QTime::currentTime(); //获取系统时间//将QTmie类对象转换为字符串QString t=sys_t.toString("hh:mm:ss"); //转换成我想要的格式//展示到ui界面ui->label->setText(t);if(ui->lineEdit->text()==ui->label->text()){speecher->say(ui->textEdit->toPlainText());}}
}//关闭系统时间的槽函数
void Widget::on_btn2_clicked()
{this->killTimer(timer_id); //关闭给定的定时器
}//启动系统时间的槽函数
void Widget::on_btn1_clicked()
{timer_id=this->startTimer(1000);
}