2022-12-14 Qt/闹钟功能实现

头文件 

//.h头文件
#ifndef WIDGET_H
#define WIDGET_H

#include <QWidget>
#include <QTimerEvent>
#include <QDateTime>
#include <QTextToSpeech>
#include <QMessageBox>

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 *event);

private slots:
    void on_pushButton_clicked();

    void on_pushButton_2_clicked();

private:
    Ui::Widget *ui;

    //实例化定时器
    QDateTime t;
    int timerid;

    //实例化播报者
    QTextToSpeech reader;

};
#endif // WIDGET_H

功能文件

#include "widget.h"
#include "ui_widget.h"

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

    //窗口弹出即启动日历表
    timerid = startTimer(1000);
}

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

//当前的时间
void Widget::timerEvent(QTimerEvent *event)
{
    t = QDateTime::currentDateTime();
    ui->label->setText(t.toString("yyyy年MM月dd日 hh:mm"));
}

//启动按钮的槽函数
void Widget::on_pushButton_clicked()
{
    //禁用两个可输入文本框
    ui->lineEdit->setEnabled(false);
    ui->textEdit->setEnabled(false);

    //判断时间是否相等
    if(ui->lineEdit->text() == t.toString("yyyy年MM月dd日 hh:mm"))
    {
        //如果时间相等,播放textedit的内容
        reader.say(ui->textEdit->toPlainText());
    }
}

//取消按钮的槽函数
void Widget::on_pushButton_2_clicked()
{
    int res = QMessageBox::question(this, "提示...", "是否取消锁定");
    if(res == QMessageBox::Yes)
    {
        //启用两个可输入文本框
        ui->lineEdit->setEnabled(true);
        ui->textEdit->setEnabled(true);
    }
}

功能实现:

1.日历与系统一直,并持续运行

2.当输入好闹钟时间以及提示信息的文本后,点击启动按钮,锁定这两个文本,且日历时间和闹钟时间相等时,播报提示信息

3.点击取消按钮,提示对话框,yes则结束那两个文本的锁定。

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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值