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);

このエントリーをはてなブックマークに追加 Clip to Evernote ブログランキング・にほんブログ村へ
にほんブログ村

MSXエミュレータで使えるROMイメージを作ってみる。
[MSX] MSX-BASICでHello World(笑) と言ってもマシン語でする。のコードを改造して作ってみる。

続きを読む
このエントリーをはてなブックマークに追加 Clip to Evernote ブログランキング・にほんブログ村へ
にほんブログ村

ファイルオープンダイアログを出してみる。

    QString filename = QFileDialog::getOpenFileName(this, tr("hoge"), "c:/",
                                                    tr("Text files(*.txt);;All Files(*.*)"));

ケッコー簡単。ファイルオープンダイアログでキャンセル押すとfilenameはNULL文字列になる。

getOpenFileName以外にもファイルやディレクトリ選択関係のダイアログが表示できる。

getOpenFileName ファイルを1つ選択できるダイアログが表示される。
getOpenFileNames ファイルを複数選択できるダイアログが表示される。
getOpenFileUrl ファイル(リモート)を1つ選択できるダイアログが表示される。
getOpenFileUrls ファイル(リモート)を複数選択できるダイアログが表示される。
getExistingDirectory ディレクトリを選択できるダイアログが表示される。
getExistingDirectoryUrl ディレクトリ(リモート)を選択できるダイアログが表示される。
getSaveFileName ファイル保存ダイアログが表示される。
getSaveFileUrl ファイル(リモート)保存ダイアログが表示される。

リモートとそうでないのはWindowsでは違いがないように見えるな~~。
別のプラットフォームだと違うのかもしれないです。(未確認)


このエントリーをはてなブックマークに追加 Clip to Evernote ブログランキング・にほんブログ村へ
にほんブログ村

↑このページのトップヘ