zoukankan      html  css  js  c++  java
  • Qt Qwdget 汽车仪表知识点拆解5 标题栏图标闪烁

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


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

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

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

    上实现代码

    .H文件中内容

    #ifndef MQLABEL_H
    #define MQLABEL_H
    
    #include <QObject>
    #include <QLabel>
    #include <QTimer>
    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;
        }
    
    }





  • 相关阅读:
    Web大规模高并发请求和抢购的解决方案
    常用的排序算法
    Kafka中的消息是否会丢失和重复消费(转)
    excel操作之poi-ooxml
    spring-boot-configuration-processor 是干啥用的
    递归和尾递归的区别和原理(转)
    kafka接口文档和kafka教程
    quartz (从原理到应用)详解篇(转)
    Elastic-Job开发指南(转)
    SimpleDateFormat线程不安全及解决办法(转)
  • 原文地址:https://www.cnblogs.com/DreamDog/p/9160049.html
Copyright © 2011-2022 走看看