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 とのインテグレーションが待ち遠しいです。

QtWayland のロードマップ

qt-project.org の development メーリングリストに QtWayland の現状とロードマップがポストされました。QtWayland は Qt5 を Wayland 上で動かすためのクライアント(QPA)プラグインと Wayland 上で Qt を使って Compositor を作るための QtCompositor API を開発しているプロジェクトです。

いくつかの問題はあるものの、現状では Qt 5.1 のリリースに合わせて(あるいは直後に) QtWayland 5.1 をリリースするために準備をしているところだそうです。5.1 では基本的には QPA プラグインの提供が主で、QtCompositor は API の変更が行われるかもしれないため、experimental リリースとなるそうです。なお、wayland QPA プラグインは Qt5 が OpenGL を必須とすることから、wayland-egl が必要となります。

その後の QtWayland 5.2 では QtCompositor API や Window decorations API の改良、Wayland Input Method のサポート、テストの追加などが予定されているようです。

上記のロードマップは反映されていませんが、QtWayland に関しては wiki の記述も参考にしてください。

なお、Wayland Input Method に関しては Mallit の wiki や FOSDEM 2013 のスライド などが参考になるでしょう。

Android で Coffice を

Coffice とは Calligra Office(あるいは coffee-in-office)の略で、Calligra(KOffice から派生した KDE 用のオフィススイート)をモバイル端末で動かそうというプロジェクトです。

KDE 用アプリである Calligra の Words をベースに、KDE 部分を簡単なラッパークラスで置き換えて、Qt(Necessitas) のみで ODT ビューアとして動くようにしたものが現在の Coffice となります。

Google Play から既に入手が可能なので少し試してみました。少し大きなファイルだとパフォーマンスが劇的に低下したり、ピンチで拡大しようとすると表示が消えたり汚かったり、落ちたりとまだまだパフォーマンス的にも機能的にも実用にはなりませんが、日本語の ODT ファイルを表示させることも出来ました。今後、プロジェクトが成長していき、編集なども可能になれば面白い存在になるかもしれません。

2013-03-25 22.34.34

Qt Creator 2.7.0 リリース

Qt Creator 2.7.0 がリリース されました。

主な新機能は以下の通りです。

  • C++11 対応の強化
  • Qt Quick Designer の Qt Quick 2 対応(要 Qt5)
  • キット(Kits)の改善
  • BlackBerry サポート
  • QBS 対応
  • その他

上記の詳細は ベータ版の記事 を参考にしてください。一点補足すると、Qt5 版の Qt Creator 2.7.0 のバイナリは Qt 5.0.2 に含まれる予定です。ちなみに、Qt Quick Designer を Qt Quick 2 に対応させるには Qt5 で qml2puppet をビルドする必要があります。今回リリースされた Qt4 版の Qt Creator 2.7.0 にはこれは含まれていませんが、Qt 5.0.2 には同梱されます。

Qt5 for iOS / Android

少し古い記事の事なので、チェック済みの方も多いとは思いますが、Qt 5.1 へ向けて iOS と Android 対応のコードがマージされ始めました。

やはり注目度は高いようで、どちらの記事も非常にたくさんコメントされています。

5.1 へ向けてといったものの、5.1 ではどちらもプレビュー版となり、正式に対応するのは早くても 5.2 となる予定です。記事としては iOS 版が先に公開されましたが、Necessitas というベースがあった Android 版の方が開発は進んでいるようで、Android 版では QtQuick 2 やメディアプレイヤーも動いています。iOS 版では V8 JavaScript エンジンを動かす技術的な目処がまだたっていないようで、QtQuick 1 止まりです。

どちらも現状ではソースからビルドする必要がありますが、気になる人はぜひ試してみてください。

“Qt5 for iOS / Android” の続きを読む