Qt Qwdget 汽车仪表知识点拆解5 标题栏图标闪烁

先贴上效果图,注意,没有写逻辑,都是乱动的

看下最上面的部分,有一些仪表图标在闪烁,如果一个一个写,也是可以实现的,不过感觉要累死的节奏

这里我写了一个我自己的Label,完了把把这些QLabel提升为自己的

在我自己的Label中实现了图标的1Hz闪烁

上实现代码

.H文件中内容

 

#ifndef MQLABEL_H
#define MQLABEL_H#include 
#include 
#include 
class MQlabel : public QLabel
{Q_OBJECT
public:explicit MQlabel(QWidget *parent = 0);void glitter(bool temp = false);
signals:private slots:void timerout_glitter();private:QTimer* timer;
};#endif // MQLABEL_H

.CPP文件中内容

 

 

#include "mqlabel.h"MQlabel::MQlabel(QWidget *parent) : QLabel(parent)
{timer = new QTimer();connect(timer,SIGNAL(timeout()),this,SLOT(timerout_glitter()));
}void MQlabel::glitter(bool temp)
{if(temp){timer->start(1000);}else{timer->stop();}
}void MQlabel::timerout_glitter()
{if(this->isHidden()){this->show();}else{this->hide();}
}

这样,需要那个label闪烁的时候,就调用那个label的闪烁函数就好了

 

我在主程序中写了一个随机

 

oid Widget::slot_timerout_titlebar_glitter()
{int temp = rand()%7;switch (temp){case 0:ui->label_titlebar_1->glitter(true);break;case 1:ui->label_titlebar_2->glitter(true);break;case 2:ui->label_titlebar_3->glitter(true);break;case 3:ui->label_titlebar_4->glitter(true);break;case 4:ui->label_titlebar_5->glitter(true);break;case 5:ui->label_titlebar_6->glitter(true);break;case 6:ui->label_titlebar_7->glitter(true);break;default:break;}int temp2 = rand()%7;switch (temp2){case 0:ui->label_titlebar_1->glitter(false);break;case 1:ui->label_titlebar_2->glitter(false);break;case 2:ui->label_titlebar_3->glitter(false);break;case 3:ui->label_titlebar_4->glitter(false);break;case 4:ui->label_titlebar_5->glitter(false);break;case 5:ui->label_titlebar_6->glitter(false);break;case 6:ui->label_titlebar_7->glitter(false);break;default:break;}}


 

 

 

 

 

 

 


本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场,不承担相关法律责任。如若转载,请注明出处。 如若内容造成侵权/违法违规/事实不符,请点击【内容举报】进行投诉反馈!

相关文章

立即
投稿

微信公众账号

微信扫一扫加关注

返回
顶部