华清远见上海中心22071班--10.13作业

题目:闹钟制作

头文件:
#ifndef WIDGET_H
#define WIDGET_H

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

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);
    //分支线程函数
    void* callBack(void* arg);

private slots:
    void on_setButton_clicked();

    void on_cancleButton_clicked();

private:
    Ui::Widget *ui;

    QTextToSpeech speecher;
    int timerid;
    bool ok = true;
    int flag;
};
#endif // WIDGET_H
#include "widget.h"
#include "ui_widget.h"

Widget::Widget(QWidget *parent)
    : QWidget(parent)
    , ui(new Ui::Widget)
{
    flag = 0;
    ui->setupUi(this);

    //调用定时器事件函数
    this->startTimer(1000);


}

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

//定时器事件函数
void Widget::timerEvent(QTimerEvent *e)
{
    QTime systime = QTime::currentTime();
    QString ct = systime.toString("hh:mm");
    //判断确认按钮是否按下,时间是否相同

    if(1 == flag)
    {
        if(ct == ui->timeEdit->text())
        {
            if(speecher.state()==0)
            {
                speecher.say(ui->remindEdit->toPlainText());
            }

        }
    }
    if(ok==true)
    {
        ct[2]=':';

        ok=false;
    }
    else
    {
        ct[2]=' ';
        ok=true;
    }
    ui->lcdNumber->display(ct);

}

//确定按钮槽函数
void Widget::on_setButton_clicked()
{
    //设置按钮状态为不可用
    ui->setButton->setEnabled(false);
    ui->timeEdit->setEnabled(false);
    ui->remindEdit->setEnabled(false);
    flag = 1;
}
//重置按钮槽函数
void Widget::on_cancleButton_clicked()
{
    flag = 0;
    ui->setButton->setEnabled(true);
    ui->timeEdit->setEnabled(true);
    ui->remindEdit->setEnabled(true);
    ui->timeEdit->clear();
    ui->remindEdit->clear();

}


现象:

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值