カテゴリー
Qt プログラミング (Programming)

新しい世界への旅立ち

最近 ここ2週間以上にわたり Qtにはまっています Qtはその最初の開発が1997年頃から始まったようです 要するに C++が世に出た頃からなのですね 少なくとも過去15年間の天才たちの叡智が込められた Frameworkなのです

Frameworkというのは、要するに「独自の世界」です 何故その独自の世界に入ろうとするのか? と問われれば、人生を考えれば良いのです たとえば、何故 あなたは小学校に入りましたか? もちろん、日本においては義務教育だからです でも、小学校に入らなければ基礎的な読み書きを習得したり、友人を作ったり、遊びを覚えたり、そのようなことを習得することは大変だったでしょう

僕の場合、何故医学部に入ったか? 模範的回答は「医者になって、たくさんの病める人々を治すため」でしょうか いやいや僕の場合実際には、安田講堂事件により、その年の東大入試が突然キャンセルとなったから なのです

でも、そのようにして貧弱な動機で医学部に入っても、その世界の中で感化され、次第に医師として生きていく自覚が目覚めてきたのです

そうです Frameworkというのは「独自の世界」なのです その中に動機はどうであれ、どっぷりと浸かれば、次第に感化され、その世界で生きていく覚悟が出来てくるのです

C++の世界には主として User Interfaceを改善するために作られた Frameworkがたくさん存在します Windows programmerにとって最も有名なものは、MFC (Microsoft Foundation Class)です 僕もずいぶんこれは勉強してそれを用いてブロック崩しを作ったり、DICOM XA Viewerを作ったりしてきました そうやってMFCの世界観を体験してきたのです

それ以外にも、MacOSではもう15年以上前から Cocoa Foundationという User Interfaceに特化した Frameworkが存在します その APIは Objective-Cのためのものです

そして、これらよりも古い歴史を有するのが、C/C++のために書かれてきた OpenGLというものです

ただ、難しい!! 一人で独学して習得するには若い頭脳が必要で、僕のような 60歳を越した頭脳では無理無理無理無理

さて、Qtは? これも大変に難しく、MFCと異なり世の中に教材があまり出ていません Amazonに行ってみて下さい、Qtで検索して一体全体何冊の日本語書籍をあなたは見つけることができますか? しかもその大多数は 10年以上昔に出版されたものです

あーーー どうやってそんな中 60越えの頭脳で Qtを習得できるのでしょうか?

やるしか無いのです 果敢に挑戦していくしか無いのです さすれば、徐々に世界は開けていくのです 新しい世界が その向こうには素晴らしい世界がきっとあるのです

ということで、頑張って頑張ってようやく Qtを用いて OSX上で bitmapの動画を動かすことができました これで DICOM XA Viewer作成は射程距離範囲内になりました 頑張るぞーー

カテゴリー
Mac Qt コンピューター (Computer) プログラミング (Programming)

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

カテゴリー
Qt プログラミング (Programming) メキシコ (Mexico) 冠動脈インターベンション (PCI) 外国訪問 (Foreign Visits) 島原 (SHIMABARA) 慢性完全閉塞 (CTO) 日本国内 (Japan Domestic) 経橈骨動脈的冠動脈インターベンション (TRI)

あちらこちら飛び歩いて

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

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

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

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

カテゴリー
C++ Qt コンピューター (Computer) プログラミング (Programming)

Qt5.1で QSoundを使用するには?

Qtに関しては日本語の情報が少く苦労します

QSoundというコンポーネントがありますが、どうしてもQt 5.1でこれをinludeできませんでした

色々調べると ここに正解がありました

これによれば まず、

.proに QT += multimedia を追加する

そうすると #include <QSount>が働きます

次に、qmakeを実行して クリーンとする これはあくまでもリンカーの問題であり、クリーン・ビルドではありません

そのようにすれば、includeできます

カテゴリー
ハイキング (Hiking)

鎌倉宮 – 八幡宮そして鎌倉駅

鎌倉宮
鎌倉宮
大きな蓮
大きな蓮
蓮の花が丁度咲いていました
蓮の花が丁度咲いていました
八幡宮は相変わらずすごい人出でした
八幡宮は相変わらずすごい人出でした
カテゴリー
ハイキング (Hiking)

明王院 – 天園

登り口近く
登り口近く
険しい登り
険しい登り
分かれ道
分かれ道
分かれ道2
分かれ道2
風吹き地蔵
貝吹地蔵
平坦な道
平坦な道
天園からの素晴らしい眺め
天園からの素晴らしい眺め
カテゴリー
ハイキング (Hiking)

大刀洗 – 明王院

大刀洗の滝
大刀洗の滝
明王院入り口
明王院入り口
明王院社殿
明王院社殿
明王院門
明王院門
カテゴリー
ハイキング (Hiking)

朝比奈切通-熊野神社

切通入り口
切通入り口
由緒ある看板
由緒ある看板
今回のメンバー
今回のメンバー
さあ朝比奈切通
さあ朝比奈切通
左熊野神社
左熊野神社
熊野神社に向かう参道 これがメインの道です
熊野神社に向かう参道 これがメインの道です
熊野神社に向かう階段
熊野神社に向かう階段
これが朝比奈切通 鎌倉時代に手で切り開かれた
これが朝比奈切通 鎌倉時代に手で切り開かれた
熊野神社社
熊野神社社
これも切通
これも切通
カテゴリー
ハイキング (Hiking)

京急六浦駅-朝比奈切通入り口

県道沿いを朝比奈に向けて
県道沿いを朝比奈に向けて
途中のコンビニで
途中のコンビニで
いよいよ朝比奈切通入り口
いよいよ朝比奈切通入り口
カテゴリー
ただの現状記述 (Daily Activities) インターネット一般 (Internet General) ハイキング (Hiking)

病棟ハイキング

昨日13日の日曜日には恒例の病棟ハイキングに行きました 企画は僕自身が行い、今回は、僕を含め医師4名、看護師さん8名、PT三名、隼人君の合計 16名のメンバーでした

9:00AM 大船駅改札口前に集合でした

僕は例によって、6:30AM頃から 7合のごはんを炊いて、オニギリを20個作成して、それをリュックサックに入れて持ち込みました まあ 7合ですからかなりの重量となります

今回の目標は 朝比奈切通 – 熊野神社 – 十二所果樹園 – 明王院 – 天園 – 永福寺(よふくじ)跡 – 鎌倉宮 – 八幡宮 – 鎌倉駅 というコースでした 台風と絡んで天候が心配な面はあったのですが、ほとんど雨も降らず、またカンカン照りともならずに最高の天候でした

鎌倉駅より横須賀線で逗子駅に向かい、京急電鉄に乗り換えて2つ目の六浦駅で降り、09:40AM頃 出発開始でした 結果的には 熊野神社から十二所果樹園への山道は険しくて途中で枝分かれしていて正しい道を見つけることができずに、果樹園には行けませんでした これは次回の課題です

それなりの高低差があり、また道も険しくもあり、左下腿がもう少しでつってしまいそうになりました

総延長 13.2 Km, 登りの合計は 371mでした

高低差地図
高低差地図
航空写真地図
航空写真地図
高低差
高低差

最後は鎌倉駅近くの「津久井」で皆でお好み焼きを食べてそれから解散となりました 「一体何人参加するかな?」と企画者としては気を揉んでいましたが、やはり無事終了して 企画した甲斐がありました