Qt は流行るに違いない!

着実にバージョンアップしていますね。
Qt 開発者の認定制度を開始したり*1Windows Mobile 6.5 を Qt4.6 で部分的にサポート、Qt4.7 で全機能のサポート*2する等、今後も期待が持てます。2ch の Qt スレも活発になってきてたりして、徐々に認知度も増している気がします。
最近 blog の更新だけでなく、Qt の勉強もサボり気味なので、改めて勉強し直して良い記事が書けるようにしたいです。

机購入

今年 4 月から一人暮らしを始めたのですが、これまで机がなく、PC は床に置いていました。
そんなわけで最悪の作業環境だったのを、今月半ばに机を買い、やっとまともなものになりました。



机はクルーズ、椅子は実家にいた時から使っていたコンテッサです。
初めてモニタアームというものを買ってみたのですが、配置の自由度が増して最高です!

Qt について (1)

学んだ技術を書くといってから、ほぼ二ヶ月が経ってしまいました。
月に一度はエントリを書くのが今年の目標なので、少しでも書きたいと思います。

雑感

C++ で書かれた GUI ツールキットです。
KDEGoogle Earth などで使われていますが、あまり流行っているとは言えない気がします。これは、GPL ライセンスを用意したのが 2005 年 6 月、LGPL ライセンスを用意したのが 2009 年 3 月と、わりと最近のことなので仕方ないのかもしれません。
ですが、これからマルチプラットフォームGUI アプリケーションを作るのであれば、選択する価値があるというのが、使ってみての感想です。

良かった点

  • シグナル、スロット

 Qt の一番肝となる機構だと思います。
 シグナルが発生すると、接続したスロットが呼び出されるという仕組み。
 シグナルをシグナルに接続することもできたり、シグナル、スロット間の
 パラメータの型や数が自由であったり、そのパラメータの型や数も
 完全一致ではなく、前方から一意になる部分まで指定すればよく、
 それ以降は省略することができたりと、かなり自由がきく。
 デザインパターンでいうところの Observer パターン。

  • レイアウト

 水平、垂直、グリッドと用意されており、スペーサーをうまく使うことで、
 ウィンドウサイズ変更時のコードをほとんど書くことなく、
 ウィンドウ内のコントロールの配置を整えることができる。

 本家で配布している物も、バージョン 1.2 位から日本語化されています。
 普通に使い易いです。

良くなかった点

  • 日本語の情報がそれほど多くない

 O'Reilly からよい書籍が出ているので、入門には困りません。
 ただ、本に載っていないことをやろうと思うと、ほとんどのドキュメントが英語です。
 ドキュメントの日本語化を、誰でも参加できるような仕組みで
 公開してくださっている方がいます(http://qt.linux-life.net/4/doc/)。
 自分にもっとまともな英語力があれば、ぜひ協力したく思うのですが。。。


今回はとりあえずこのくらいで。
次は、もっとちゃんと書きたいと思います。

ここ3ヶ月の間、(自分にとって)新しい技術に触れる機会がありました。
今月からは、仕事の関係上そこまでの余裕もなくなりそうなので、
忘れない内にここに書き留めていこうと思います。


次から、順不同で取り上げていきます。

Dropbox を使って emacs の設定を共有

複数の環境で、emacs の設定を共有するようにしてみました。

  • 基本方針

追加の elisp や設定を、Dropbox を使って同期する。
~/.emacs では、それを読み込むだけにする。

; Dropbox の emacs 設定ディレクトリを load-path に追加
(setq load-path
      (append '("~/Dropbox/emacs")
              load-path))

; Dropbox に置かれた emacs 設定ファイルを読み込む
(if (file-exists-p (locate-library "siteinit"))
    (load (locate-library "siteinit") nil t nil))
; このファイルが置かれているディレクトリ
(setq siteinit-path (file-name-directory (locate-library "siteinit")))

; siteinit-path を基準とする設定の例
(setq load-path
      (append (list
               (concat siteinit-path "iiimecf"))
               load-path))
  • 設定後の使い方

~/Dropbox/emacs/siteinit.el が ~/.emacs の役目となります。
追加の elisp は、~/Dropbox/emacs 以下に入れるようにし、
パスが必要な場合は、siteinit-path を使うようにします。

CUI 環境の Linux で Dropbox を使う方法

つい二週間程度前に挑戦したものの、Dropbox にコンピュータを登録する部分がうまくいかず諦めていた。久しぶりに Dropbox Wiki を見直したら、登録する際の URL が変わっていたので再挑戦してみた所、ちゃんと登録できました。

https://www.getdropbox.com/register?host_id=HOSTID
 ↓
https://www.getdropbox.com/cli_link?host_id=HOSTID

ちょうど、変更した時期にやろうとしていたなんて、なんてタイミングの悪い……

  • 参考

Dropbox Wiki
インフラメンコさん