华清远见嵌入式学习——QT——作业4

发布时间:2023年12月17日

作业要求:

代码运行效果图:

代码:

头文件:

#ifndef ALARMCLOCK_H
#define ALARMCLOCK_H

#include <QWidget>
#include <QTimerEvent>
#include <QTimer>
#include <QTime>
#include <QTextToSpeech>

QT_BEGIN_NAMESPACE
namespace Ui { class AlarmClock; }
QT_END_NAMESPACE

class AlarmClock : public QWidget
{
    Q_OBJECT

public:
    AlarmClock(QWidget *parent = nullptr);
    ~AlarmClock();
    void timerEvent(QTimerEvent *e);

private slots:
    void on_sbtn_clicked();

    void on_cbtn_clicked();

private:
    Ui::AlarmClock *ui;

    int id;

    QTextToSpeech *speech;
};
#endif // ALARMCLOCK_H

源文件:

#include "alarmclock.h"
#include "ui_alarmclock.h"

AlarmClock::AlarmClock(QWidget *parent)
    : QWidget(parent)
    , ui(new Ui::AlarmClock)
{
    ui->setupUi(this);

    speech = new QTextToSpeech(this);
}

AlarmClock::~AlarmClock()
{
    delete ui;
}

void AlarmClock::timerEvent(QTimerEvent *e)
{
    //获取系统时间
    QTime systime = QTime::currentTime();

    //将系统时间转换
    QString s = systime.toString("hh:mm:ss");

    //将转换后的系统时间放入Label中
    ui->timelab->setText(s);

    //居中显示
    ui->timelab->setAlignment(Qt::AlignCenter);

    //比对闹钟时间和系统时间,如果相等,则播报闹钟
    if(ui->tedit->text() == s)
    {
        for(int i=0;i<3;i++)
        {
            speech->say(ui->speechlab->text());
        }
    }
}

//启动按钮点击信号对应的槽函数
void AlarmClock::on_sbtn_clicked()
{
    //打开一个定时器
    id = startTimer(1000);

}

//关闭按钮点击信号对应的槽函数
void AlarmClock::on_cbtn_clicked()
{
    killTimer(id);
}

主函数:

#include "alarmclock.h"

#include <QApplication>

int main(int argc, char *argv[])
{
    QApplication a(argc, argv);
    AlarmClock w;
    w.show();
    return a.exec();
}

思维导图:

文章来源:https://blog.csdn.net/qq_54502935/article/details/134957411
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。