qtday4 定时器

 

头文件.h 

#ifndef WIDGET_H
#define WIDGET_H

#include <QWidget>
#include <QPushButton>
#include <QTimer>
#include <QTimerEvent>
#include <QTime>
#include <QLabel>
#include <QLineEdit>
#include <QFileDialog>
#include <QFontDialog>
#include <QTextEdit>
#include <QString>
#include <QObject>
#include <QDateTime>
#include <QTextToSpeech>
#include <QLineEdit>
class Widget : public QWidget
{
    Q_OBJECT

public:
    Widget(QWidget *parent = nullptr);
    ~Widget();


private slots:
   void shoutime();
    void bin1_open();
     void bin2_close();
     void timerEvent(QTimerEvent *e);

private:
QPushButton *bin1,*bin2;
QTimer *time1,*time2;
QTime syt_time;
QFont file;

QLabel *label,*label1;
QDateTime datetime1;
QTextToSpeech *speech;
QLineEdit* edit1,*edit;
int time_id;
};

#endif // WIDGET_H

 源文件.cpp

#include "widget.h"

Widget::Widget(QWidget *parent)
    : QWidget(parent)
{
    this->setFixedSize(600,500);

    bin1 = new QPushButton("启动",this);
    bin2 = new QPushButton("取消",this);

    bin1->resize(50,50);
    bin2->resize(50,50);

    bin1->move(400,100);
    bin2->move(480,100);


    speech = new QTextToSpeech(this);
    file = QFont("宋体",12);

//文本
    edit = new QLineEdit(this);
    edit->resize(500,150);
    edit->move(50,200);
    edit->setFont(file);
//定时器
    time1 = new QTimer(this);
    time1->start(1000);

//定时的文本
    edit1 = new QLineEdit(this);
    edit1->resize(300,60);
    edit1->move(400,20);

//信号与槽
    connect(time1,&QTimer::timeout,this,&Widget::shoutime);
    connect(bin1,&QPushButton::clicked,this,&Widget::bin1_open);
    connect(bin2,&QPushButton::clicked,this,&Widget::bin2_close);






//时间文本
label = new QLabel(this);
label->move(50,100);
label->resize(250,50);





}

Widget::~Widget()
{

}

void Widget::timerEvent(QTimerEvent *e)
{

   if(e->timerId() == time_id)
    {
       QString t = QTime::currentTime().toString("HH:mm:ss");

       if(t == edit1->text())


        speech->say(edit->text());

    }
}
void Widget::shoutime()
{
    //获取系统时间
    datetime1 = QDateTime::currentDateTime();
    QString t1 = datetime1.toString("yyyy-MM-dd hh::mm::ss AP");
    t1 = datetime1.toString("yyyy-MM-dd hh:mm:ss AP");
    label->setText(t1);
}




void Widget::bin1_open()
{


        time_id = this->startTimer(1000);
        bin1->setEnabled(false);
        bin2->setEnabled(true);


}


void Widget::bin2_close()
{
    speech->stop();
    this->killTimer(time_id);
    bin2->setEnabled(false);
    bin1->setEnabled(true);
}

 

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值