QT4 用QLabel實時顯示時間

markely發表於2012-09-29

最近在做一個2410基於Linux的介面,需要實時的現實一些資料和時間在網上找了好多資料,費了九牛二虎之力再到一篇相關的文章,能顯示時間,但卻不能實時重新整理。費了將近兩天的時間,終於可以讓它實時顯示了。

編譯環境 :Fedora 9

編譯器 :qtopia-core-opensource-src-4.3.3.tar.gz(在Fedora 9上編譯成功也費了好長的時間)

功能已實現,程式如下,供大家參考,

由於本人也是QT的初學者,很希望高手能指點指點

// ClockWindow.h

#ifndef _CLOCKWINDOW_H
#define _CLOCKWINDOW_H

#include <QApplication>
#include <QLabel>

class ClockWindow : public QLabel
{
        Q_OBJECT
public:
        ClockWindow(QWidget *parent = 0);

protected:
        void timerEvent(QTimerEvent * event);
};

#endif

// ClockWindow.cpp

#include "clockwindow.h"
#include <QDateTime>

ClockWindow::ClockWindow(QWidget *parent)
:        QLabel(parent)
{
        setMargin(10);
        setAlignment(Qt::AlignHCenter|Qt::AlignVCenter);
        timerEvent(0);
        startTimer(1000);
}
void ClockWindow::timerEvent(QTimerEvent *event)
{
     QDateTime qdatetime=QDateTime::currentDateTime(); 
     int y=qdatetime.date().year();
     int m=qdatetime.date().month();
     int d=qdatetime.date().day();
     QString strTime=qdatetime.time().toString();
     QLabel *TextLabel_Time = new QLabel(this); 
     TextLabel_Time->setText(strTime+" "+QString::number(d)+"/"+QString::number(m)+"/"+QString::number(y)); //顯示時間格式為21:09:54 9/4/2009
     QTimer *time = new QTime(TextLabel_Time);
     QTimer *timec = new QTime(TextLabel_Time)
     connect(time,SIGNAL(timeout()),TextLabel_Time,SLoT(show()));
     connect(timec,SIGNAL(timeout()),TextLabel_Time,SLoT(clear()));
     time->start(1000);
     timec->start(2000);

// main.cpp

#include "clockwindow.h"

int main(int argc, char *argv[])
{
        QApplication app(argc, argv);
        ClockWindow window;
        window.show();
        return app.exec();
}

相關文章