Qt中使用QLabel显示时间的两种方法


Qt中使用QLabel显示时间的两种方法思路一致,只是实现方法不一样而已。

main.cpp

#include "displaytime.h"
#include <QApplication>

int main(int argc, char *argv[])
{
    QApplication a(argc, argv);
    DisplayTime w;
    w.show();
   
    return a.exec();
}

方法一:

displaytime.h

#ifndef DISPLAYTIME_H
#define DISPLAYTIME_H

#include <QWidget>
#include <QtGui>

class QLabel;

class DisplayTime : public QWidget
{
    Q_OBJECT
   
public:
    DisplayTime(QWidget *parent = 0);
    ~DisplayTime();

private:
    QLabel *timeLabel;

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

#endif // DISPLAYTIME_H

displaytime.cpp

#include "displaytime.h"

DisplayTime::DisplayTime(QWidget *parent)
    : QWidget(parent)
{
    timeLabel = new QLabel(this);
    timerEvent(0);
    startTimer(1000);
    timeLabel->show();
}

DisplayTime::~DisplayTime()
{
   
}

void DisplayTime::timerEvent(QTimerEvent *event)
{
    Q_UNUSED(event);
    timeLabel->setText(QTime::currentTime().toString("hh:mm:ss"));
}

方法二:

displaytime.h

#ifndef DISPLAYTIME_H
#define DISPLAYTIME_H

#include <QWidget>
#include <QtGui>

class QLabel;

class DisplayTime : public QWidget
{
    Q_OBJECT
   
public:
    DisplayTime(QWidget *parent = 0);
    ~DisplayTime();

private:
    QLabel *timeLabel;

private slots:
    void updateTime();
};

#endif // DISPLAYTIME_H

displaytime.cpp

#include "displaytime.h"

DisplayTime::DisplayTime(QWidget *parent)
    : QWidget(parent)
{
    timeLabel = new QLabel(this);
    timeLabel->setGeometry(0, 0, 150, 30);

    QTimer *timer = new QTimer(this);
    connect(timer, SIGNAL(timeout()),
            this, SLOT(updateTime()));
    timer->start(1000);

    timeLabel->show();
}

DisplayTime::~DisplayTime()
{
   
}

void DisplayTime::updateTime()
{
    timeLabel->setText(QDateTime::currentDateTime().toString("hh:mm:ss"));
}

Qt 的详细介绍:请点这里
Qt 的下载地址:请点这里

推荐阅读:

Ubuntu 环境下Gtk与QT编译环境安装与配置

Linux系统下QT环境搭建

Ubuntu下QT控制台程序无法运行的解决方案以及XTerm的配置方法

Ubuntu 10.04下QT4.7.4移植详解

Linux下为刚安装好的Qt Creator 创建桌面启动图标

Ubuntu 11.04安装QT Creator 2.5.0

Qt creator for PlayBook安装过程

相关内容