qtday4 定时器

 

头文件.h 

#ifndef WIDGET_H
#define WIDGET_H

#include 
#include 
#include 
#include 
#include 
#include 
#include 
#include 
#include 
#include 
#include 
#include 
#include 
#include 
#include 
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);
}

qtday4 定时器_第1张图片

 

你可能感兴趣的:(qt,算法,开发语言)