Qt の日本語訳更新中

私事ながら、今月より 株式会社SRA の正社員となりました。昨年に Nokia を退社してからも SRA で仕事をしてはいたのですが、ようやく色々と落ち着いた形となります。SRA では Qt のサポートやコンサルティングなどをしつつ、Qt 自体への貢献も時間を見つけて行っています。この記事の内容もそういった活動の一つです。

最初に手がけているのは以前からの目標でもあったインストーラの日本語化です。それに関連して Qt や各モジュールのメッセージの日本語化を行っています。

対象としてはまずは以下のプロジェクトをこの順番で実施中です。

  1. Qt Installer Framework
  2. Qt5
  3. Qt Creator

“Qt の日本語訳更新中” の続きを読む

Qt5: ANGLE と OpenGL

Qt5 で OpenGL が必須要素となったことに関連して、Windows 版では ANGLE を使った構成が追加されました。今まで ANGLE については詳しく説明してきませんでしたが、いい機会なので Qt Project の wiki にある “Qt 5 on Windows ANGLE and OpenGL” を翻訳してみました。

ANGLE と OpenGL の使い分けについても書いてありますので、参考にしてください。不明点などありましたらコメントなどで連絡してください。

libclang を用いた moc の再実装

本家の Planet Qt にはたびたび woboq という会社の記事が出てきます。Nokia/Trolltech で Qt の開発に携わっていたメンバーが立ち上げた小さな会社ですが、Qt および C++ などの確かな技術力を元にこれまでにもさまざまな面白い記事を提供しています。古い記事もご紹介したいものはありますが、今回はその中から「Proof Of Concept: Re-implementing Qt moc using libclang」を紹介しようと思います。

moc(Meta-Object Compiler) というと Qt のメタオブジェクトシステムの核となる要素であり、シグナルやスロットの実現に欠かせないコマンドであります。moc は C++ のヘッダーファイルやソースファイルをパースして QObject を継承したクラスの宣言(正確には Q_OBJECT マクロのあるクラス宣言)を見つけ出して、必要なメタオブジェクトやシグナル、メソッドの実装を作成します。

このため、moc は独自実装による C++ のプリプロセッサおよびパーサを合わせたような機能を持っています。が、C++ のすべての仕様の実装までは行っておらず、複雑な文法になる場合や C++11 特有の書式には対応していません。そこでパーサーの実装に libclang を用いて、moc を(moc-ng として)再設計することで C++ の仕様への追従度や、moc 自身のメンテナンス性を向上させようというのがこの Proof Of Concept (概念実証) の目的となります。

“libclang を用いた moc の再実装” の続きを読む

Qt 4.8.5 リリース

Qt 4.8.5 がリリースされました。Qt 4.8 系のパッチリリースになります。

多数のバグフィックスに加え、4.8.4 リリース以降に発見されたセキュリティアドバイザリーの修正などが行われています。下記に 4.8.5 で修正されたセキュリティアドバイザリーを記載しておきます。ネットワーク系のアプリを使用している場合などはアップデートを推奨します。

対応されるのはしばらく後になりそうですが、Qt 5.1 のオンラインインストーラで Qt 4.8.5 をインストール可能にする計画もあるそうです。

Qt 5.1.0 RC2 リリース

Qt 5.1.0 の RC2 版がリリースされています。なお、Qt Blog でのアナウンスはありませんので、5.1.0 RC1 で問題に遭遇した人は以下のパッケージを試してみてください。

なお詳しく確認はしていませんが、オンライン版からのアップデートは行えなかったので、オフライン版のみのリリースかもしれません。

Qt 5.1.0 RC リリース

Qt 5.1.0 の RC 版がリリースされました。

ベータ版から RC 版での変更点としてはパッケージ関連のものが主なものとなります。

  • オンラインインストーラ
  • Linux 版(32/64 bit)に加えて、Windows 版(32 bit)の Android 対応パッケージ
  • MinGW 版のツールチェインを 4.8.0 にアップデート
  • 32 bit 版の VS2012 対応パッケージの追加。VS2012 は SP2 へ更新
  • ソースアーカイブから perl の依存を除去(WebKit のビルドには必要となります)

Qt 5.1 そのものの新機能については 5.1 アルファ版のリリース記事 を参照してください。

Qt 5.1 ベータリリース

Qt 5.1.0 のベータ版がリリースされました。

5.1 の新機能に関しては Qt 5.1 アルファ版の リリース記事 を参考にしてください。

5.1 アルファとの大きな違いは(もちろんバグ修正などもありますが)バイナリパッケージが用意されていることです。5.1 でサポート予定のすべてのパッケージがそろっているわけではありませんが、Windows 用の (ANGLE ではなく) デスクトップ用 OpenGL でビルドしたパッケージや Linux 版のみですが Android 用のパッケージがリリースされています。また、現状はオフライン版のインストーラしかありませんが、正式リリース時にはオンライン版のインストーラも用意される予定です。

プラットフォームとしては Android や iOS のテクノロジープレビュー版に注目が集まっていますが、この他に Windows Embedded Compact 7 に対応予定となっています。

qbs 0.3

(もう一ヶ月も前ですが) Qt の新しいビルドツールとして開発が進められている qbs が 0.3 に達したことが アナウンス されました。

Qt には既に qmake というビルドツールがありますが、(特に大規模あるいは複雑なプロジェクトを作成するときに)柔軟性に欠け分かりにくいとその評判は決して良いものではありません。そこで新たなビルドツールの検討として qbs の開発が進められています。

qbs と qmake の一番大きな違いは qmake は make や Visual Studio や XCode のプロジェクトなど各プラットフォームネイティブのビルドツール用のファイルを生成する間接的なビルドツールであるのに対して、qbs は(cmake のように)それ自身がビルドを実行するツールであることです。

qbs ではプロジェクトファイルの形式も QML のような宣言型の文法を採用しており、qmake に比べるとより柔軟にプロジェクトを提議することが出来ます。qmake を用いた場合よりも高速化されており、(qmake で言う DEFINES のような) コンパイル設定の変更による再ビルドのサポートなどのメリットがあります。

デメリットとしては現状 Qt Creator 以外の IDE との連携が出来ないこと、ビルドに Qt(QtScript) が必要であることがあります。このため、qmake を完全に置き換えるのは(Qt Project としては)大変かもしれません。

気になった方はまずは Quick Reference を読んでみてください。