忍者ブログ

Cyber Bird

   

[PR]

×

[PR]上記の広告は3ヶ月以上新規記事投稿のないブログに表示されています。新しい記事を書く事で広告が消えます。

Qtをやってみる



半年くらい前に一度触りかけて、以後ずっと放置していたQtをもう一度やってみようかと思いました。

自作OSは諦めたんじゃないんだからね!
そっちは、一昨日「はじめて読む486」を注文したので、
届けばきっと大丈夫(俺の思考回路がついていけば

QtはNokiaが開発・提供しているGUIツールキットの一種です。
言わずもがな、GUIツールキットとはGUIアプリケーションを使うためのライブラリ/API群、
もしくはそれらのラッパーです。
GUIツールキットには山ほど種類がありますが…

<Windows>
・Windows API
・MFC

<Mac OS>
・Carbon
・Cocoa

<Unix…というかクロスプラットフォーム>
・X11
・Xaw
・GTK+
・wxWidgets
・Tk

といった具合に、たくさんございます。

ではQtはどのような特徴があるのかというと、


・クロスプラットフォーム
・メイン言語はC++
・シグナルとスロット
・PC/AT互換機以外のデバイスもいくつかサポート


といったあたりでしょうか。
クロスプラットフォームに関しては説明は不要でしょう。
主にはC++向けに提供されています。PythonやRubyなどでも使えた気が。
また、Symbianを始めとするモバイルデバイスでの開発にも使えます。
ここは流石Nokiaさんというところ。


最後、シグナルとスロット。

GUIプログラミングにおいて、CUIと最も異なるのが、入力です。
CUIではコマンドラインからの文字入力しかありません。(一般的には
ところが、GUIではマウスで左クリックしたり右クリックしたりダブルクリックしたり…
監視すればいいのはEnterキーだけで済むどころじゃありません。

そのため、イベントドリブン方式をとるのが一般的なようです。
何かクリックやキー押下のようなイベントが発生したら、逐次処理を実行する感じです。

イベントが発生すると、OSがアプリケーションの用意したコールバック関数を呼びます。
コールバック関数が、起こったイベントに対してそれぞれの処理を行います。



これには、OSに対してコールバック関数を登録しなくてはなりません。

ところが、Qtは他のGUIツールキットと違って、こうなります。



どういうことかというと、起こったイベントがアプリケーション内で「シグナル」として
準備されています。OSはこのシグナルを呼ぶようになっています。

そして、自分でシグナルをアプリケーションの「スロット」につなげます。
スロットにはイベントが起こったときに行われる好きな処理が記述できます。
設計をこうすることで保守性があがります。

ちなみに、シグナルとスロットは、クラスメソッドです。




このように、QtはC++のオブジェクト指向を思う存分活かしたプログラミングが
可能になります。

しかし、ひとつだけ問題があります。日本語情報が少ないという事です。

仕方ないので英語を読んで勉強します…。
まあ、一般的に技術解説の英語は外国人も読むことが想定されているので、
母国語を英語としない人でも簡単に読めるようになっている(?)らしいので、
ゆっくりトライしたいと思います。

とりあえずはここを参考にしていこう。
PR

COMMENT

NAME
TITLE
MAIL(非公開)
URL
EMOJI
Vodafone絵文字 i-mode絵文字 Ezweb絵文字
COMMENT
PASS(コメント編集に必須です)
SECRET
管理人のみ閲覧できます

TRACKBACK

Trackback URL:

ブログ内検索

プロフィール

HN:
levelfour
性別:
男性
自己紹介:
ぼちぼち更新を再開する予定です。

twitter

最新コメント

[09/27 菜々氏]
[06/17 NONAME]
[04/30 mithril]
[04/29 Liva]
[01/30 NONAME]

最新トラックバック

コガネモチ

Copyright ©  -- Cyber Bird --  All Rights Reserved
Design by CriCri / Photo by Geralt / powered by NINJA TOOLS / 忍者ブログ / [PR]