44 lines
762 B
C++
44 lines
762 B
C++
#include "countdown.h"
|
|
|
|
countDown::countDown(QObject *parent) : QObject(parent)
|
|
{
|
|
timer=new QTimer(this);
|
|
connect(timer,&QTimer::timeout,this,&countDown::refresh);
|
|
}
|
|
|
|
void countDown::refresh()
|
|
{
|
|
if(ms)
|
|
{
|
|
ms--;
|
|
if(!ms) emit ended();//计时结束,触发结束信号,写在这里是为了让声音和画面同步
|
|
}
|
|
else
|
|
{
|
|
if(timer->isActive())timer->stop();
|
|
}
|
|
emit refreshed();
|
|
}
|
|
|
|
void countDown::setTime(int t)//弃坑,写不来
|
|
{
|
|
mem=ms=t;
|
|
emit setted();
|
|
}
|
|
void countDown::reset()
|
|
{
|
|
ms=mem;
|
|
refresh();
|
|
emit setted();
|
|
}
|
|
void countDown::start()
|
|
{
|
|
emit refreshed();
|
|
timer->start(1000);
|
|
}
|
|
void countDown::stop()
|
|
{
|
|
emit refreshed();
|
|
if(timer->isActive())timer->stop();
|
|
}
|