Qtで digital clock

Qtは C++のための cross platform frameworkです 非常に良さそうなのですが、何しろ MFCに比較すると情報がとても少ないのです

ただ豊富な sample programがついているのでそれを見ながら色々と試してみました

そのプログラムの中でデジタル・クロックというのがありました それを自分で納得できるように改変したのです

まずは digitalclock.hです

#ifndef DIGITALCLOCK_H
#define DIGITALCLOCK_H


#include <QtWidgets>
#include <QtGui>

class DigitalClock : public QWidget
{
    Q_OBJECT

public:
    DigitalClock(QWidget *parent = 0);
    QLCDNumber *lcd;
    QLabel *lbl;
    QVBoxLayout *lout;
    QFont qf;
private slots:
    void showTime();
};

#endif

そして digitalclock.cppです

#include "digitalclock.h"

DigitalClock::DigitalClock(QWidget *parent) : QWidget(parent)
{
    QPalette pal;
    pal.setColor(QPalette::Window, Qt::green);
    this->setPalette(Qt::yellow);
    this->resize(1000, 500);
    pal.setColor(QPalette::WindowText, Qt::red);

    lcd = new QLCDNumber(this);
    lcd->setSegmentStyle(QLCDNumber::Outline);
    lcd->setDigitCount(11);
    lcd->setPalette(Qt::green);


    lcd->setWindowTitle(tr("Digital Clock"));

    lcd->resize(850, 200);
    lbl = new QLabel();
    lout = new QVBoxLayout(this);
    lbl->setFont(QFont("Arial", 72, QFont::Bold));


    lbl->setPalette(pal);
    lout->addWidget(lbl);
    showTime();
}

void DigitalClock::showTime()
{
    QTime time = QTime::currentTime();
    QString text = time.toString("hh:mm ss-zzz");

    if (time.second() % 2 == 0){
       text[2] = ' ';
       text[5] = ':';
    }
    lcd->display(text.left(11));
    lbl->setText(text.left(11));
//    lbl->show();
    lbl->show();
}

そして main.cppです

#include <QApplication>
#include <QtWidgets>
#include <QtGui>

#include "digitalclock.h"

int main(int argc, char *argv[])
{
    QApplication app(argc, argv);
    QTimer timer;
    DigitalClock *clock = new DigitalClock();
    QObject::connect(&timer, SIGNAL(timeout()), clock, SLOT(showTime()));
    timer.start(10);

    clock->show();
    return app.exec();
}

これで結果は以下のような digital clockとなります

Digital Clock

あちらこちら飛び歩いて

先週末は大阪から島原に 島原で強烈な慢性完全閉塞を院内ライブデモンストレーションで治療しました そして今週はCVITで名古屋に、そのまま名古屋空港-成田空港-サンフランシスコ-メキシコシティに入ったのです

丁度首相および日本経済会の大物達もメキシコに入り、日本とメキシコの間で様々な経済協力条約が樹立されたのです 僕はと言えばこれまで数年間に渡って行ってきたメキシコでのTRIを中心とした経皮的冠動脈インターベンションの指導により、この時期 メキシコの外務省より感謝状が授与されました

メキシコに到着したのは、こちらの時刻で木曜日の20:00で、目まぐるしく金曜日に日程をこなし、現在土曜日早朝 6:00AM前ですが、再びサンフランシスコ経由で帰国します

その間時差ボケにめげず大分 Qtのスキルが進みました