Qtday4作业

闹钟

 头文件

#ifndef MAINWINDOW_H
#define MAINWINDOW_H

#include <QMainWindow>
#include<QTimer>
#include<QTime>
#include<QTimerEvent>
#include<QDateTime>
#include<QDebug>
#include <QTextToSpeech>
#include <QMessageBox>

namespace Ui {
class MainWindow;
}

class MainWindow : public QMainWindow
{
    Q_OBJECT

public:
    explicit MainWindow(QWidget *parent = nullptr);
    ~MainWindow();

private slots:
    void on_time_label();
    void on_startBut_clicked();
    void on_closeBut_clicked();

private:
    Ui::MainWindow *ui;

    //定义一个定时器指针
    QTimer *t1;

    //定义一个定时器的标识
    int tid;
    //定义播报指针
    QTextToSpeech *tts;
};

#endif // MAINWINDOW_H

全局函数

#include "mainwindow.h"
#include "ui_mainwindow.h"

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

    tts = new QTextToSpeech(this);

    //给定时器指针实例化空间
    t1=new QTimer(this);

     t1->start(0);
    connect(t1,&QTimer::timeout,this,&MainWindow::on_time_label);

}

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

void MainWindow::on_time_label()
{
    //获取系统当前时间
    QTime sys_time=QTime::currentTime();
    //将qtime转换成字符串
    QString time =sys_time.toString("hh:mm:ss");

    //设置lab内容居中显示
    ui->time_label->setAlignment(Qt::AlignHCenter|Qt::AlignVCenter);
   //将lab中字体设置大小
    ui->time_label-> setFont(QFont("Arial", 30));
    //将时间展示到ui界面
    ui->time_label->setText(time);

    QString text=ui->set_time->text();
    QString systime=ui->time_label->text();
    QString word=ui->textEdit->toPlainText();
    if(text==systime)
    {

        int numReminders = 5; //需要提醒的次数
        for (int i = 0; i < numReminders; i++) {
                tts->say(word);
        }
        QMessageBox box(                             //构造出一个box对象,使用有参构造完成
                        QMessageBox::Information,      //图标
                        "问题对话框",                //对话框标题
                        word,             //文本内容
                        QMessageBox::Ok,   //提供的按钮
                        this);                           //父组件


        //将对象 进入运行态
        int ret = box.exec();
        //对用户选择的结果进行判断
        if(ret == QMessageBox::Ok)
        {
            this->close();
        }
}


}

void MainWindow::on_startBut_clicked()
{

    if(ui->startBut->text()=="启动")
        {
            //启动定时器
          // t1->start(0);   //功能:启动一个时间间隔为0秒的定时器

            //将开始按钮设置为不可用
            ui->startBut->setDisabled(true);

             //将暂定按钮设置为可用
            ui->closeBut->setEnabled(true);

        }
}


void MainWindow::on_closeBut_clicked()
{
    if(ui->closeBut->text()=="关闭")
    {
        //停止定时器
            //t1->stop();
        //将开始按钮设置可用
            ui->startBut->setEnabled(true);
        //将结束按钮设置为不可用
            ui->closeBut->setDisabled(true);
    }
}

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值