QML エンジンの進化 その1

QML は JavaScript をベースに作成された言語です。そのため、QML の言語処理系には JavaScript エンジンを使用しています。Qt4 では JavaScriptCore を、Qt5 ではより速度を求めて V8 JavaScript Engine を採用しました。Qt5 では V8 の採用とそれ以外の最適化などで Qt Quick のパフォーマンス向上を果たしましたが、徐々にその限界も見えつつあります。その限界と次のステップを解説する第一弾として “Evolution of the QML engine, part 1” が Qt Blog に投稿されました。面白い記事ですので、ざっくりと訳してみることにします。

さて、現状の V8 の利用にどのような問題があるのでしょうか

“QML エンジンの進化 その1” の続きを読む

Visual Studio Add-In 1.2.1 for Qt 5 リリース

Visual Studio Add-In 1.2.1 for Qt 5 がリリースされました。

主な変更内容は以下の通りです。

  • Visual Studio 2012 のデバッガーで Qt5 のクラスをサポート
  • Visual Studio Add-In for Qt 4 との切替による共存を可能に
  • Qt5 のライブラリ名やインクルードパスの間違いを修正
  • 商用版のみ: Qt Quick サポートの追加(プロジェクトウィザード、キーワードハイライト、プレビュー)

Qt 5.0.2 リリース

Qt 5.0 系のパッチリリースとなる 5.0.2 がリリース されました。多くのバグ修正が行われていますが、主なものはバイナリパッケージやビルドに関連するもののようです。

  • VS2012 でビルドした Windows 用バイナリパッケージ(ANGLE 版) と VS2010 でビルドした Windows 用バイナリパッケージ(デスクトップ OpenGL 版)
  • 同梱する Qt Creator を 2.7.0 に更新
  • configure 時に -skip オプションでビルドしないモジュールの選択が可能に
  • static ビルド対応
  • その他 600 以上の改善

これまでは Windows 版のバイナリパッケージは ANGLE 版しかなく問題も色々と発生していましたが、デスクトップ OpenGL 版も用意されました。OpenGL 系の機能を使う方は ANGLE 版ではなく OpenGL 版を使用してください。

Qt のプロパティシステム

Qt のオブジェクトシステム( QObject と関連クラス)にはプロパティのシステムが用意されています。C++ だけを使用してプログラムするときには意識する必要はほとんどありませんが、Qt Script や Qt WebKit、QML などが C++ と連携する場合には非常に重要な仕組みです。この記事では Qt のプロパティシステムと、Qt 5.1 で追加される MEMBER 指定子について簡単に説明します。

プロパティとは

まず、プロパティとは何でしょうか。プロパティはオブジェクトの属性のことです。例えば、QWidget であればその幅( width )や高さ( height )、QLabel であればその文字列( text )などがプロパティになります。

C++ ではそれらのプロパティの値は getter と呼ばれる関数を通じて取得し、setter と呼ばれる関数で設定します。先ほどの QLabel の場合、QLabel::text() が getter で、QLabel::setText() が setter になります。このように C++ ではメンバー関数を通じて利用するために getter で取得する値がプロパティかどうかは意識することはまずありませんが、たとえば QML でアクセスする場合には getter / setter はエンジン側で自動的に使用され、ユーザーからはプロパティは変数のように見えます。

“Qt のプロパティシステム” の続きを読む

Qt 5.1 の OpenGL

KDAB のブログで “OpenGL in Qt 5.1” というシリーズの記事が公開されています。

Qt 5.1 の OpenGL についての解説というタイトルになっていますが、Part 1 では Qt4 での OpenGL と Qt5 の違いなども記載されていますので、Qt で OpenGL を使っている人には Qt5 の現状を把握するにはちょうど良い記事になっていると思います。OpenGL 3 以降の機能を使うクラスの紹介などもあるので、若干デスクトップ寄りなスタンスではありますが。

“Qt 5.1 の OpenGL” の続きを読む

Qt Installer Framework 1.3 リリース

Qt SDK のインストーラとして使用されている Qt Installer Framework 1.3 がリリースされました。

Qt5 対応や翻訳対応(日本語はまだ有りません)が主な新機能となります。

デスクトップ向けアプリには便利なフレームワークですし、Qt Creator とのインテグレーションが待ち遠しいです。