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

第8回 グラフィックスイフェクト

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

Qt 4.6に関する連載の最終回は,グラフィックスイフェクトについての説明です。地味な機能ですが,気の利いたユーザインターフェースを作るのに便利な機能です。

グラフィックスイフェクトを用いたサンプル

Qtのインストール先のexamples/effectsにグラフィックスイフェクトを用いたサンプルが3つ用意されています。

アプリケーションピッカーでは,アプリケーションのアイコンを輪状に表示させ,矢印キー操作でアイコンを回転させています。奥にあるアイコンほどぼかしがかかったようにして,カレントのアイコンをわかりやすく見せるようにしています。

アプリケーションピッカー

イフェクト付きポップアップメッセージでは,メッセージが表示されるときには,背景をアニメーションをかけながら緑色に色づけをして,メッセージが目立つようにしています。

イフェクト付きポップアップメッセージ

ライティングとシャドーでは,回転する光源が作る影をアニメーションで表示しています。

ライティングとシャドー

グラフィックスイフェクトのクラス

図1は,グラフィックスイフェクトに用意されているクラスです。主要なクラスの機能概要は,表1のようになります。

図1 グラフィックスイフェクトに用意されているクラスの階層図

図1 グラフィックスイフェクトに用意されているクラスの階層図

表1 グラフィックスイフェクトのクラス名と機能の概要

クラス名機能概要
QGraphicsEffectグラフィックスイフェクト機能の純粋仮想クラス。
QGraphicsBlurEffectぼかし効果用グラフィックスイフェクト
QGraphicsColorizeEffect色付け効果用グラフィックスイフェクト
QGraphicsDropShadowEffect影付け効果用グラフィックスイフェクト
QGraphicsOpacityEffect半透明効果用グラフィックスイフェクト

グラフィックスイフェクトは,上表にあるように,ぼかし,色付け,影付け,半透明化などの効果をグラフィックスアイテム(QGraphicsItem)とウィジェット(QWidget)に付加する機能です。つまり,通常の描画にこれらを適用して,その結果が表示されます。

グラフィックスイフェクトの使い方は以下の2ステップです。使い方はとても簡単で,うまく使えばよいインターフェースを作れます。

①グラフィックスイフェクトのインスタンスを生成し,必要に応じてプロパティを設定する。

グラフィックスイフェクトに関連する主なプロパティは表2の通りです。

表2 グラフィックスイフェクト関連のプロパティ

グラフィックスイフェクトプロパティ説明
QGraphicsBlurEffectblurRadius: qrealぼかし半径。デフォルトは5ピクセル。
QGraphicsColorizeEffectcolor: QColor色付けの色。デフォルトはQColor(0, 0, 192)。
strength: qrealイフェクトの強度。1.0で完全着色,0.0で無着色。デフォルトは1.0。
QGraphicsDropShadowEffectblurRadius: qreal影のぼかし半径。デフォルトは1ピクセル。
color: QColor影の色。デフォルトはQColor(63, 63, 63, 180)。
QGraphicsOpacityEffectopacity: qreal不透明度。デフォルトは0.7。

②グラフィックスアイテムかウィジェットにグラフィックスイフェクトを設定する。

以下のメソッドを用います。設定したグラフィックスイフェクトのオーナーは,設定先のオブジェクトになります。

QGraphicsItem::setGraphicsEffect( QGraphicsEffect* effect );
QWidget::setGraphicsEffect( QGraphicsEffect* effect );

これらのメソッドでの設定後にグラフィックスイフェクトのプロパティの変更をすれば,表示にすぐに適用されます。また,enabled プロパフィで,グラフィックスイフェクトを設定したままで,有効無効を切替えられます。

今回紹介するアニメーションプログラムのソースリストはこちらからダウンロードしてください。

著者プロフィール

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

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

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

コメント

コメントの記入