qt模拟闹钟

本文档详细介绍了如何利用Qt库开发一个模拟闹钟应用,主要涉及了在widget.cpp和widget.h文件中的实现细节,包括界面设计和时间触发功能。
摘要由CSDN通过智能技术生成

widget.cpp

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

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

    timer=new QTimer(this);

    timer->start(1000);
    Idtime=QObject::startTimer(1000);

    ui->textEdit->setText("今天跟二狗子约好要干架,别忘了带好工具");

}

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


void Widget::on_timer_timeout()
{

}

void Widget::on_btn1_clicked()
{
    connect(timer,&QTimer::timeout,this,&Widget::on_btn1_clicked);
    ui->btn1->setDisabled(true);
    qDebug()<<"OK";
    if(ui->lineEdit->text()==ui->label->text())
    {
        qDebug()<<"OK";
        QTextToSpeech *speech=new QTextToSpeech(this);

        QString text=ui->textEdit->toPlainText();

        speech->say(text);
    }
}
//重写定时器事件处理函数
void Widget::timerEvent(QTimerEvent *event)
{
    QDateTime systime=QDateTime::currentDateTime();

    QString time=systime.toString("yyyy MM dd hh:mm:ss");

    ui->label->setText(time);

}


void Widget::on_btn2_clicked()
{
    auto btn =  QMessageBox::question(this,
                          "warning",
                          "确定是否退出闹钟模式?",
                          QMessageBox::Ok|QMessageBox::No);

    //对用户选定的按钮,进行判断
    if(btn==QMessageBox::Ok)
    {
        ui->btn1->setDisabled(false);
        disconnect(timer,&QTimer::timeout,this,&Widget::on_btn1_clicked);

    }else if(btn==QMessageBox::No)
    {

    }

}

widget.h

#ifndef WIDGET_H
#define WIDGET_H

#include <QWidget>
#include <QObject>
#include <QTextToSpeech>
#include <QTime>
#include <QTimer>
#include <QDateTime>
#include <QDebug>
#include <QTimerEvent>
#include <QTextEdit>
#include <QMessageBox>

QT_BEGIN_NAMESPACE
namespace Ui { class Widget; }
QT_END_NAMESPACE

class Widget : public QWidget
{
    Q_OBJECT

signals:
    void speech();
private slots:

    void on_timer_timeout();

    void on_btn1_clicked();

    void on_btn2_clicked();

public:
    Widget(QWidget *parent = nullptr);
    ~Widget();
    //重写定时器事件处理函数
    void timerEvent(QTimerEvent *event);

private:
    Ui::Widget *ui;
    QTimer *timer;
    int Idtime;
};
#endif // WIDGET_H

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值