完成文本编辑器的保存工作-代码:
void Widget::on_pushButton_4_clicked()
{
//创建保存文件对话框
QString filename = QFileDialog::getSaveFileName(this,
"保存文件",
"./",
"All(*.*);;Text files (*.txt)");
//创建一个文件对象,用filename路径名初始化
QFile file(filename);
//以只写的形式打开
file.open(QFile::WriteOnly);
//将textedit中的信息存入filename这个路径中
QString msg = ui->textEdit->toPlainText(); //用msg接收textedit中的字符串
QByteArray data = msg.toUtf8(); //将字符串转换为QByteArray类
file.write(data); //写入
file.close(); //关闭文件
}
运行实例:
实现闹钟功能-代码:
widget.h
#ifndef WIDGET_H
#define WIDGET_H
#include <QWidget>
#include <QTimerEvent>
#include <QTime>
#include <QTextToSpeech>
#include <QDebug>
QT_BEGIN_NAMESPACE
namespace Ui { class Widget; }
QT_END_NAMESPACE
class Widget : public QWidget
{
Q_OBJECT
public:
Widget(QWidget *parent = nullptr);
~Widget();
void timerEvent(QTimerEvent *e) override;
private slots:
void on_startbtn_clicked();
void on_closebtn_clicked();
private:
Ui::Widget *ui;
int timer_id; //定时器的id号
QTime sys_t; //定义系统时间
QTextToSpeech speecher; //定义播报员
};
#endif // WIDGET_H
widget.cpp
#include "widget.h"
#include "ui_widget.h"
Widget::Widget(QWidget *parent)
: QWidget(parent)
, ui(new Ui::Widget)
{
ui->setupUi(this);
}
Widget::~Widget()
{
delete ui;
}
//定时器时间处理函数
void Widget::timerEvent(QTimerEvent *e)
{
//获取系统时间
sys_t = QTime::currentTime();
//将QTime类对象转换为QString类对象
QString t = sys_t.toString("hh:mm:ss");
//展示到ui界面
ui->timelabel->setText(t);
//qDebug()<<ui->clockEdit->text();
if(e->timerId() == timer_id){ //匹配定时器信号
if(t == ui->clockEdit->text()){ //判断当前系统时间与输入时间是否相等
speecher.say(ui->textEdit->toPlainText()); //古诗朗诵
}
}
}
//启动定时器对应的槽函数
void Widget::on_startbtn_clicked()
{
//功能:启动一个定时器
//参数:超时时间,每隔给定的时间后,自动调用定时器处理函数
//返回值:当前定时器的id号
timer_id = this->startTimer(0);
}
//关闭定时器对应的槽函数
void Widget::on_closebtn_clicked()
{
this->killTimer(timer_id); //关闭给定的定时器
speecher.stop();
}
思维导图: