天天看點

QT實作電子表digitalclock實作的效果實作的思路建立步驟

實作的效果

QT實作電子表digitalclock實作的效果實作的思路建立步驟

實作的思路

QT實作電子表digitalclock實作的效果實作的思路建立步驟

建立步驟

1、建立項目

QT實作電子表digitalclock實作的效果實作的思路建立步驟
QT實作電子表digitalclock實作的效果實作的思路建立步驟
QT實作電子表digitalclock實作的效果實作的思路建立步驟

下一步,下一步,完成,建立完成,項目結構如下:

QT實作電子表digitalclock實作的效果實作的思路建立步驟

2、代碼實作

DigitalClock.h

#ifndef DIGITALCLOCK_H
#define DIGITALCLOCK_H

#include <QLCDNumber>

class DigitalClock : public QLCDNumber
{
    Q_OBJECT
public:
    DigitalClock(QWidget *parent = 0);

private slots:
    void showTime();// 相應的槽函數
};

#endif // DIGITALCLOCK_H           

DigitalClock.cpp

#include "DigitalClock.h"
#include <QTimer>
#include <QTime>

DigitalClock::DigitalClock(QWidget *parent)
    : QLCDNumber(parent)// 注意這裡的構造函數的寫法
{
    // 設定樣式為填充
    this->setSegmentStyle(Filled);
    // 建立QTimer對象
    QTimer* timer = new QTimer(this);
    // 設定響應的槽函數
    connect(timer,SIGNAL(timeout()),this,SLOT(showTime()));
    // 一秒鐘之後開始執行
    timer->start(1000);
    // 調用函數執行一次
    this->showTime();
    // 設定視窗的标題
    this->setWindowTitle(tr("電子表"));
    // 設定視窗的大小
    this->resize(300, 150);
}

void DigitalClock::showTime()
{
    // 擷取目前的系統時間
    QTime time = QTime::currentTime();
    // 設定顯示的樣式
    QString text = time.toString("hh:mm");
    // 如果秒數是偶數,那麼就讓:消失
    if((time.second() % 2) == 0)
    {
        text[2] = ' ';
    }
    this->display(text);// 顯示文本
}
           

main.cpp

#include <QApplication>

#include "DigitalClock.h"

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

pro檔案

HEADERS += \
    DigitalClock.h

SOURCES += \
    DigitalClock.cpp \
    main.cpp

QT += widgets           

繼續閱讀