[{"createTime":1735734952000,"id":1,"img":"hwy_ms_500_252.jpeg","link":"https://activity.huaweicloud.com/cps.html?fromacct=261f35b6-af54-4511-a2ca-910fa15905d1&utm_source=V1g3MDY4NTY=&utm_medium=cps&utm_campaign=201905","name":"华为云秒杀","status":9,"txt":"华为云38元秒杀","type":1,"updateTime":1735747411000,"userId":3},{"createTime":1736173885000,"id":2,"img":"txy_480_300.png","link":"https://cloud.tencent.com/act/cps/redirect?redirect=1077&cps_key=edb15096bfff75effaaa8c8bb66138bd&from=console","name":"腾讯云秒杀","status":9,"txt":"腾讯云限量秒杀","type":1,"updateTime":1736173885000,"userId":3},{"createTime":1736177492000,"id":3,"img":"aly_251_140.png","link":"https://www.aliyun.com/minisite/goods?userCode=pwp8kmv3","memo":"","name":"阿里云","status":9,"txt":"阿里云2折起","type":1,"updateTime":1736177492000,"userId":3},{"createTime":1735660800000,"id":4,"img":"vultr_560_300.png","link":"https://www.vultr.com/?ref=9603742-8H","name":"Vultr","status":9,"txt":"Vultr送$100","type":1,"updateTime":1735660800000,"userId":3},{"createTime":1735660800000,"id":5,"img":"jdy_663_320.jpg","link":"https://3.cn/2ay1-e5t","name":"京东云","status":9,"txt":"京东云特惠专区","type":1,"updateTime":1735660800000,"userId":3},{"createTime":1735660800000,"id":6,"img":"new_ads.png","link":"https://www.iodraw.com/ads","name":"发布广告","status":9,"txt":"发布广告","type":1,"updateTime":1735660800000,"userId":3},{"createTime":1735660800000,"id":7,"img":"yun_910_50.png","link":"https://activity.huaweicloud.com/discount_area_v5/index.html?fromacct=261f35b6-af54-4511-a2ca-910fa15905d1&utm_source=aXhpYW95YW5nOA===&utm_medium=cps&utm_campaign=201905","name":"底部","status":9,"txt":"高性能云服务器2折起","type":2,"updateTime":1735660800000,"userId":3}]
<>一、定时器
<>第一种方式:
1 利用事件 void timerEvent ( QTimerEvent * ev)
2 启动定时器 startTimer( 1000) 毫秒单位
3 timerEvent 的返回值是定时器的唯一标示 可以和ev->timerid 做比较
<>第二种方式:
1 利用定时器类 QTimer
2 创建定时器对象 QTimer * timer = new QTimer(this)
3 启动定时器 timer->start(毫秒)
4 每隔一定毫秒,发送信号 timeout ,进行监听
5 暂停 timer->stop
.h文件
#ifndef WIDGET_H #define WIDGET_H #include <QWidget> namespace Ui { class
Widget; } class Widget : public QWidget { Q_OBJECT public: explicit Widget(
QWidget*parent = 0); ~Widget(); //重写定时器的事件 虚函数 子类重写父类的虚函数 virtual void
timerEvent(QTimerEvent *); int id1; //定时器1的唯一标示 int id2; //定时器2的唯一标示 private: Ui
::Widget *ui; }; #endif // WIDGET_H
.cpp文件
#include "widget.h" #include "ui_widget.h" #include <QTimer> //定时器类 #include
<QMouseEvent> #include <QDebug> Widget::Widget(QWidget *parent) : QWidget(parent
), ui(new Ui::Widget) { ui->setupUi(this); //定时器第一种方式 //启动定时器
每隔1s调用一下timerEvent函数 id1 = startTimer(1000); //参数1 间隔 单位 毫秒 id2 = startTimer(
2000); //定时器第二种方式 QTimer * timer = new QTimer(this); //启动定时器 timer->start(500);
connect(timer,&QTimer::timeout,[=](){ static int num = 1; //label4 每隔0.5秒+1 ui->
label_4->setText(QString::number(num++)); }); //点击停止或开始按钮 实现停止定时器或者启动定时器 connect
(ui->btn,&QPushButton::clicked,[=](){ timer->stop(); //timer->start(500); }); }
void Widget::timerEvent(QTimerEvent * ev) { if(ev->timerId() == id1) { static
int num = 1; //label2 每隔1秒+1 ui->label_2->setText( QString::number(num++)); } if
(ev->timerId() == id2) { //label3 每隔2秒 +1 static int num2 = 1; ui->label_3->
setText( QString::number(num2++)); } } Widget::~Widget() { delete ui; }
<>二、显示效果