強火で進め

このブログではプログラム関連の記事を中心に書いてます。

Qtを始めてみた


Qtにアニメーションフレームワーク、マルチタッチ、ジェスチャー、OpenVGなど魅力的な機能が追加された様なのでちょっと本格的に始めようかなと早速、DLしてみました。

Symbian」と「Snow Leopard」をサポートした「Qt 4.6」が登場 - SourceForge.JP Magazine
http://sourceforge.jp/magazine/09/12/02/0319250

ダウンロードとインストール

ダウンロード先としてはパートナー企業のSRA

Qt キュート
http://www.sra.co.jp/qt/

または本家サイトはこちらから可能でした。

Qt – クロスプラットフォームユーザーインターフェース開発フレームワーク — Qt - A cross-platform application and UI framework
http://qt.nokia.com/title-jp

以前は本家サイトから落とした(ちなみにそのときはデモプログラムの実行ぐらいしかしませんでした)ので今回はSRAからDLしてみました。

DLしたのはLGPL版、DLするには入力フォームにて多少データを入力しないといけない様でした。
ちなみに商用版だと安いやつでも30万程度するみたいです。

Qtライセンス|Qt キュート
http://www.sra.co.jp/qt/licence/index.html

ダウンロードするものの中から自分が使いそうなのは以下の3種類ありました。
・Qt フレームワークのダウンロード
・Qt SDK (フレームワークと Qt Creator) のダウンロード
・Qt Creator のダウンロード
とりあえず2番目のものを使えばその他の2つを含む様なのでこちらを落としました。

ファイルはdmgファイル形式だったのでトラブルもなくすんなりインストール完了。

主なデータは以下の位置にインストールされた様です。
・アプリケーション
/Developer/Applications/Qt
・ドキュメント
/Developer/Documentation/Qt
・サンプルコード
/Developer/Examples/Qt

プログラム開始

とりあえずこちらのサイトにQtの関連情報が掲載されているようです。
今回はこちらのサイトの最後に有る。「Qt 4.2.0 チュートリアル日本語版」をDLしてみました。

Qt関連情報|Qt キュート
https://www.sra.co.jp/qt/relation/index.html

とりあえずまだ序盤しか読んでないのですがこちら日本語で書いて有りますし、Hello World!から始まっていてとても分かり易そうです。

しかし、こちらのドキュメントは開発環境(Qt Creator)の使い方には触れてなかったのでそこの部分でちょっとハマりました。なのでこれから始める人向けにその辺りもフォローする形で書いときます。

まだ始めたばかりなので実はもっと良い方法などある場合もあるかもしれませんが取りあえず以下の内容でVer 2.6の環境で「Qt 4.2.0 チュートリアル日本語版」のサンプルを実行できました。

1. 開発環境の起動。開発環境のIDEであるQt Creatorは /Developer/Applications/Qt に有ります。こちらを開きます。
2. ショートカット Cmd+N でプロジェクトを新規作成。プロジェクトは「空の Qt4 プロジェクト」を選択。
3. main.cppファイルの作成。ツリーのプロジェクトを選択した状態で右クリックし、「新しいファイルを追加」。「C++ ソース ファイル」を選択。名前を main にして作成。
4. 「Qt 4.2.0 チュートリアル日本語版」に紹介されているコードを記述。
5. ショートカット Cmd+R でビルドと実行(ビルドだけ行う場合は Cmd+B )。

あと、クラスなどを選択した状態でF1キーを押すと選択したもののリファレンスページが表示されます。コード補完のショートカットは Ctrl+Space 。

ちなみにコードの記述はこんな感じになります。これだけの記述で「アプリを終了するボタン付きアプリ」のプログラムが作成できます。この様な全て手書きのプログラム以外にもGUIツールでボタンやテキストエリアを配置するようなパターンの開発も出来る様です。
自分としては main() が隠蔽されてないところが良い印象。

#include <QApplication>
#include <QFont>
#include <QPushButton>

int main(int argc, char *argv[])
{
    QApplication app(argc, argv);

    QPushButton quit("Quit");
    quit.resize(75, 30);
    quit.setFont(QFont("Times", 18, QFont::Bold));

    QObject::connect(&quit, SIGNAL(clicked()), &app, SLOT(quit()));

    quit.show();
    return app.exec();
}

関連書籍

入門 Qt 4 プログラミング

入門 Qt 4 プログラミング

Qt GUIプログラミング (C magazine)

Qt GUIプログラミング (C magazine)

Qtで簡単 GUIプログラミング―Qt入門書を読む前に読む「入門書」

Qtで簡単 GUIプログラミング―Qt入門書を読む前に読む「入門書」