如何在qt中显示闪烁的[animate]红色/绿色状态图标

时间:2016-05-03 08:40:53

标签: c++ qt animation

我想在Qt C ++应用程序中显示红色动画闪烁图标。

设置变量时显示红色闪烁图标,当变量清除时显示绿色闪烁图标。

如果断开连接,它将是连续的 - 闪烁红色图标,连接 - 闪烁绿色图标。

任何人都可以告诉我如何显示它。

2 个答案:

答案 0 :(得分:0)

一旦你知道如何显示图像:QImageQIconQPixmap,通过闪烁就可以很容易地显示它:

  • 首先制作QImage(或QIconQPixmap)(绿色)
  • 创建第二个QImage(或QIconQPixmap)(红色)
  • 创建并启动QTimer并将timeout()信号连接到将在两个第一张图片之间切换的广告位

答案 1 :(得分:0)

使用计时器和QMovie我已经解决了问题。

以下是更新通知栏的计时器

  updateScreenTimer = new QTimer(this);
  connect(updateScreenTimer, SIGNAL(timeout()), this, SLOT(update_Time_Slot()));
  updateScreenTimer->start(TIME_USED_UPDATE_NOTIFICATION);

每次TIME_USED_UPDATE_NOTIFICATION超时后,它将调用下面的插槽并检查变量,如果设置了变量,则启动绿色闪烁动画gif图像影片。否则启动红色闪烁的动画gif图像。

    void Notification::update_Time_Slot()
    {    
        if(ConectionStatus==1)
        {
            QMovie *movie = new QMovie(":/new/prefix1/greenBlinking1.gif");
            if(movie->isValid())
            {
                ui->connectionLabel->setMovie(movie);
                movie->start();
            }
            ui->connectionLabel->show();
        }
        else
        {
            QMovie *movie = new QMovie(":/new/prefix1/redBlinking1.gif");
            if(movie->isValid())
            {
                ui->connectionLabel->setMovie(movie);
                movie->start();
            }
            ui->connectionLabel->show();
        }
    }

相关帖子 - > What is the best way to display an animated icon in a QTableView?