hattorix0の日記 RSSフィード

2009-10-31

[][]Qt は流行るに違いない!

着実にバージョンアップしていますね。

Qt 開発者の認定制度を開始したり*1Windows Mobile 6.5 を Qt4.6 で部分的にサポート、Qt4.7 で全機能のサポート*2する等、今後も期待が持てます。2chQt スレも活発になってきてたりして、徐々に認知度も増している気がします。

最近 blog の更新だけでなく、Qt の勉強もサボり気味なので、改めて勉強し直して良い記事が書けるようにしたいです。

2009-09-30

[]机購入

今年 4 月から一人暮らしを始めたのですが、これまで机がなく、PC は床に置いていました。

そんなわけで最悪の作業環境だったのを、今月半ばに机を買い、やっとまともなものになりました。


f:id:hattorix0:20090921005052j:image

机はクルーズ、椅子は実家にいた時から使っていたコンテッサです。

初めてモニタアームというものを買ってみたのですが、配置の自由度が増して最高です!

2009-08-30

[]Qt について (1)

学んだ技術を書くといってから、ほぼ二ヶ月が経ってしまいました。

月に一度はエントリを書くのが今年の目標なので、少しでも書きたいと思います。


雑感

C++ で書かれた GUI ツールキットです。

KDEGoogle Earth などで使われていますが、あまり流行っているとは言えない気がします。これは、GPL ライセンスを用意したのが 2005 年 6 月、LGPL ライセンスを用意したのが 2009 年 3 月と、わりと最近のことなので仕方ないのかもしれません。

ですが、これからマルチプラットフォームGUI アプリケーションを作るのであれば、選択する価値があるというのが、使ってみての感想です。


良かった点

  • シグナル、スロット

 Qt の一番肝となる機構だと思います。

 シグナルが発生すると、接続したスロットが呼び出されるという仕組み。

 シグナルをシグナルに接続することもできたり、シグナル、スロット間の

 パラメータの型や数が自由であったり、そのパラメータの型や数も

 完全一致ではなく、前方から一意になる部分まで指定すればよく、

 それ以降は省略することができたりと、かなり自由がきく。

 デザインパターンでいうところの Observer パターン。


  • レイアウト

 水平、垂直、グリッドと用意されており、スペーサーをうまく使うことで、

 ウィンドウサイズ変更時のコードをほとんど書くことなく、

 ウィンドウ内のコントロールの配置を整えることができる。


  • Qt Creator

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

 普通に使い易いです。


良くなかった点

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

 O'Reilly からよい書籍が出ているので、入門には困りません。

 ただ、本に載っていないことをやろうと思うと、ほとんどのドキュメントが英語です。

 ドキュメントの日本語化を、誰でも参加できるような仕組みで

 公開してくださっている方がいます(no title)。

 自分にもっとまともな英語力があれば、ぜひ協力したく思うのですが。。。


今回はとりあえずこのくらいで。

次は、もっとちゃんと書きたいと思います。

2009-07-04

[]

ここ3ヶ月の間、(自分にとって)新しい技術に触れる機会がありました。

今月からは、仕事の関係上そこまでの余裕もなくなりそうなので、

忘れない内にここに書き留めていこうと思います。



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

2009-06-26

[]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 を使うようにします。