功能
可以实现按下从100开始倒计时,再次按下停止计时的功能。
效果展示
源码
.h文件
:
#ifndef COUNTDOWN_H
#define COUNTDOWN_H
#include <QMainWindow>
#include <QTimer>
namespace Ui {
class CountDown;
}
class CountDown : public QMainWindow
{
Q_OBJECT
public:
explicit CountDown(QWidget *parent = 0);
~CountDown();
private slots:
void on_pushButton_clicked();
void run();
private:
Ui::CountDown *ui;
QTimer * timer;
};
#endif // COUNTDOWN_H
.cpp文件
:
#include "countdown.h"
#include "ui_countdown.h"
CountDown::CountDown(QWidget *parent) :
QMainWindow(parent),
ui(new Ui::CountDown)
{
ui->setupUi(this);
ui->pushButton->setText(QString::fromUtf8("开始"));
timer = new QTimer(this);
connect(timer, SIGNAL(timeout()), this, SLOT(run()));
}
CountDown::~CountDown()
{
delete ui;
}
bool clicked = false;
void CountDown::on_pushButton_clicked()
{
if(clicked == false)
{
ui->pushButton->setText(QString::fromUtf8("暂停"));
timer->start(1000);
clicked = true;
}
else if(clicked == true)
{
ui->pushButton->setText(QString::fromUtf8("开始"));
timer->stop();
clicked = false;
}
}
void CountDown::run()
{
QFont font;
font.setPixelSize(18);
static int count = 101;
if(count!=0)
count--;
QString num = QString::number(count);
ui->label->setAlignment(Qt::AlignHCenter);
ui->label->setFont(font);
ui->label->setText(num);
}
很简单,记录一下,养成一个好习惯。