QGraphicViewを使って画像ファイルを表示してみる。
手順はこんな感じだ。
- 画像ファイルを読み込む。
- 画像をQGraphicsPixmapItemに変換する。
- 画像(QGraphicsPixmapItem)をシーン(QGraphicsScene)に追加する。
- グラフィックスビュー(QGraphicsView)にシーンを設定する。
ちょうど、QGraphicsViewが額縁やフォトフレーム、QGraphicsSceneがキャンバスや写真、QGraphicsPixmapItemはキャンバスに描かれたり、写真に撮られたりする物になる。QGraphicsPixmapItemの部分は正確にはQGraphicsItemを継承したクラスのインスタンスが使え、矩形やポリゴンなどもある。
Widgetのプロジェクトを作成する。
UIにGraphics Viewとボタンを貼る。ボタンを押したらC:\tmp\hoge.pngを読み込んで表示するようにしたいと思う。
WidgetクラスにQGraphicsSceneを追加する。
QGraphicsScene scene;
ボタンを押した時の処理を次のようにする。
// イメージファイルを読み込む
QImage image("c:\\tmp\\hoge.png");
// イメージをシーンに追加する。
QGraphicsPixmapItem *image_item = new QGraphicsPixmapItem(QPixmap::fromImage(image));
scene.addItem(image_item);
// シーンをQGraphicsViewに設定する。
ui->graphicsView->setScene(&scene);