![我在這裏輸入圖片描述] [1]我有兩個帶有圖像的Q標籤,我需要每隔幾秒鐘閃爍一次。Qlabel和Qtimer(需要使圖像閃爍)
我一直在尋找THROU這個例子:http://www.codeprogress.com/cpp/libraries/qt/showQtExample.php?index=357&key=QLCDNumberBlinkingClock
然而,不明白我是如何與提前QLabel
由於實現它。
![我在這裏輸入圖片描述] [1]我有兩個帶有圖像的Q標籤,我需要每隔幾秒鐘閃爍一次。Qlabel和Qtimer(需要使圖像閃爍)
我一直在尋找THROU這個例子:http://www.codeprogress.com/cpp/libraries/qt/showQtExample.php?index=357&key=QLCDNumberBlinkingClock
然而,不明白我是如何與提前QLabel
由於實現它。
創建一個QTimer,將timeout()信號連接到一個插槽,並且在插槽中您可以對QLabel執行任何操作!
myclass.h:
class MyClass : public QWidget
{
Q_OBJECT
public:
explicit MyClass(QWidget *parent = 0);
public slots:
void timeout();
private:
QTimer *timer;
QLabel *label;
int counter;
};
myclass.cpp:
#include "myclass.h"
MyClass::MyClass(QWidget *parent) :
QWidget(parent)
{
timer = new QTimer();
label = new QLabel();
counter = 0;
connect(timer, SIGNAL(timeout()), this, SLOT(timeout()));
timer->start(1000);
}
void MyClass::timeout()
{
if(counter%2)
label->setText("Hello !");
else
label->setText("Good bye...");
counter++;
}
是的,我真的不明白你想要用你的標籤做什麼,但是如果你想隱藏/顯示它們,你可以使用label-> hide();和label-> show(); setText()僅僅是一個例子。 –
我已經適應您鏈接到了QLabel示例代碼:
#include <QtGui>
class BlinkLabel : public QLabel
{
Q_OBJECT
public :
BlinkLabel(QPixmap * image1, QPixmap * image2)
{
m_image1 = image1;
m_image2 = image2;
m_pTickTimer = new QTimer();
m_pTickTimer->start(500);
connect(m_pTickTimer,SIGNAL(timeout()),this,SLOT(tick()));
};
~BlinkLabel()
{
delete m_pTickTimer;
delete m_image1;
delete m_image2;
};
private slots:
void tick()
{
if(index%2)
{
setPixMap(*m_image1);
index--;
}
else
{
setPixMap(*m_image2);
index++;
}
};
private:
QTimer* m_pTickTimer;
int index;
QPixmap* m_image1;
QPixmap* m_image2;
};
然後你」 d需要做的是創建一個BlinkLabel的實例,如下所示:
QPixmap* image1 = new QPixmap(":/image1.png");
QPixmap* image2 = new QPixmap(":/image2.png");
BlinkLabel blinkLabel = new BlinkLabel(image1, image2); // alternates between image1 and image2 every 500 ms
嗨,謝謝你的回答,請你看看編輯。這些是我的源文件,並且有我的用戶界面的屏幕截圖,我必須在源文件中放置什麼以使其鏈接到「label」和「label_2」。再次感謝 ! – user2653112
我已經更新了我的答案,以反映如何在QLabel上交替圖像。 –
您鏈接的代碼非常簡單。你不明白什麼?您需要創建QTimer並將超時插槽連接到交替顯示QLabel(閃爍)的信號。 –