4.6がやってきた-Qt最新事情2010

第1回 速報!Qt 4.6新機能とロードマップ

この記事を読むのに必要な時間:およそ 3 分

2009年12月1日にQt 4.6がリリースされました。今回は,Qt 4.6の新機能の概要と今後のロードマップについて説明し,Qtがどのようになっていくかを見てみましょう。そして,Qt 4.6の最も大きな機能追加と言える,ダイナミックで動きのあるGUIを可能にするアニメーションフレーワークについて,回を改めて詳しく説明します。

新しく追加されたプラットフォーム

Qt 4.6: Supported Platforms にあるように,Qt 4.5からサポートプラットフォームが3段階にランク付けされています。

最もレベルの高いTier 1にSymbian S60が新たに追加され,次のレベルであるTier 2に,Windows 7とMac OS X 10.6(Snow Leopard)が追加されています。最もレベルの低いTier 3は,Nokiaのサポート対象外ですが,QNXとVxWorksが追加されています。以前からX11ベースのQNX向けQtがありましたが,さらにX11を使わないQWS(Qt Window System)ベースのQNX対応版が追加されています。VxWorks は,X11 が必要です。

Qt 4.7では,現在Technical PreviewのMaemoが正式に加わるでしょう。また,Windows 7とMac OS X 10.6がTier 1になり,WindowsのVisual Studio 2010版がTier 2に加わる予定です。逆にサポートレベルが下がったり廃止されるものもあります。Mac OS XのCarbonはTier 2に下がり,WindowsのMinGW 3.4とVisual Studio 2003,HP-UXのPA-RISC,Windows Mobile 5の各プラットフォームがなくなり,OpenGL ES Common Liteのサポートもなくなります。

アニメーションフレームワーク

アニメーションフレームワークは,大まかに4つの機能で構成されています。

アニメーションAPI

Qtのプロパティを動的に変更することによって,動きのあるGUIを作る機能です。ステートとトランジションと合わせて使えるようになっていて,以下のような特徴があります。

  • どのQObjectのプロパティでもアニメーション可能
  • アニメーションを結合してグループ化
  • イージングカーブを使用可能

たとえば,位置や大きさなどのプロパティを動的に変えることで,ボタンの配置などを動きのあるものにできます。イージングカーブを適用すれば,落ちて弾むような動きをさせられます。

ステートとトランジション

Qtのシグナルとスロットと融合させて,ハレルのステートチャートとSCXML(State Chart XML)を完全に実装していて,以下のような特徴があります。

  • アプリケーションの動作の意味付けを簡明化
  • 動作の形式化による保守性の向上
  • イベントドリブンプログラミングの強化
  • アプリケーションロジックの記述の検証可能化

ネストしたステートもきちんと実装されているので,本格的なステートとトランジションによるプログラミングが可能です。

グラフィックスエフェクト

What's New in Qt 4.6のページにあるように,ぼかし,影,色付け,透明度などのグラフィカルなエフェクトを,QGraphicsItem や QWidgetに適用して,ユーザインターフェースを視覚的に際立たせたり,強調させたりできます。以下のような特徴があります。

  • 任意のペイントデバイスにエフェクトを適用可能
  • 前述のようなよく使われるエフェクトはビルトイン済
  • 独自のエフェクトを追加拡張可能

宣言的UI

宣言的UIの目的は,ユーザインターフェースをデザインするグラフィカルデザイナーとプログラマが共同で開発する際に,JavaScriptベースのQML言語を介して,両者の垣根を取り払って,協力して開発を進めやすくすることです。

宣言的UIで記述したアプリケーションの動画がYouTubeにいくつもあります。どのようなGUIが作れるかは,以下のビデオを見るとよくわかり,興味が湧くはずです。

Declarative UI (QML)
URLhttp://doc.trolltech.com/qml-snapshot/declarativeui.html

YouTube - QML Demo: Ars Feed Wall

YouTube - QML Dev Days 2009

YouTube - QML flickr browser demo

当初は,Qt 4.6でのリリースが予定されていましたが,2009/12/1のリリースには入りませんでした。しかし,2週間後の2009/12/14に,別のモジュールとして正式リリースされ,Qt 4.6を使って,宣言的UIをインストールして使えるようになりました。

Qt Labs Blogs >> Qt Declarative for Qt 4.6.0 released
URLhttp://labs.trolltech.com/blogs/2009/12/14/qt-declarative-for-qt-460-released/

パッチリリースの4.6.1以降に含まれる予定で,めったにないパッチリリースでの機能追加です。

なお図1のように,Qt 4.6と同時にリリースされたQt Creatorには,すでにQMLプロジェクト作成機能が入っています。

図1

図1

著者プロフィール

杉田研治(すぎたけんじ)

1955年生まれ。東京都出身。株式会社SRAに勤務。プログラマ。

仕事のほとんどをMac OS XとKubuntu KDE 4でQtと供に過ごす。

コメント

コメントの記入