1.
widget.cpp
#include "widget.h"
#include "ui_widget.h"
Widget::Widget(QWidget *parent)
: QWidget(parent)
, ui(new Ui::Widget)
{
ui->setupUi(this);
t = new QTimer(this);
connect(t,&QTimer::timeout,this,&Widget::timeout_slot);
}
Widget::~Widget()
{
delete ui;
}
//定时器超时,自动执行的功能代码
void Widget::timerEvent(QTimerEvent *e)
{
//判断哪个定时器超时
if(e->timerId() == id)
{
// static int num = 0;
// ui->eventLabel->setNum(++num);
//获取系统时间
QTime sys_time = QTime::currentTime();
//将系统时间转换
QString s = sys_time.toString("hh:mm:ss");
//将获取到的系统时间放入label中
ui->eventLabel->setText(s);
//居中显示
ui->eventLabel->setAlignment(Qt::AlignCenter);
}
}
//按钮对应的槽函数处理
void Widget::on_eventBtn_clicked()
{
if(ui->eventBtn->text() == "启动")
{
//启动一个定时器
id = startTimer(1000);//让系统每隔1秒钟,自动执行timerEvent()
//将按钮文本设置成 关闭
ui->eventBtn->setText("关闭");
}
else
{
//关闭一个定时器
killTimer(id);
//将文本设置成 启动
ui->eventBtn->setText("启动");
}
}
void Widget::timeout_slot()
{
QTime sys_time = QTime::currentTime();
QString s = sys_time.toString("hh:mm:ss");
ui->timerLabel->setText(s);
ui->timerLabel->setAlignment(Qt::AlignCenter);
}
void Widget::on_timerBtn_clicked()
{
if(ui->timerBtn->text() == "启动")
{
t->start(1000);
ui->timerBtn->setText("关闭");
}
else
{
t->stop();
ui->timerBtn->setText("启动");
}
}
思维导图: