QtとC++で画像を表示する!

I wrote: 2016/12/24

QtとC++で画像の表示をやってみました。Qtのバージョンは4.8です。

今までPyQtで画像の表示は結構やってましたが、Qtではやっていませんでした。なので、今回はQtで画像を表示させてみました。ソース的にはPyQtと大きく違いはないかなあと思います。

強いて大きな違いと言えば、画像ファイルを使う場合は、qrcファイルと呼ばれるリソース設定ファイル?を準備して、proファイルと呼ばれるプロジェクトファイルにRESOURCES += image.qrcを追加することかなと思います。

 


以下はソースです。

/********************
* main.h
*********************/

#include <QWidget> #include <QPaintEvent>
class MainWindow : public QWidget { Q_OBJECT public: MainWindow(QWidget *parent = 0); protected: void paintEvent(QPaintEvent* event); };
/********************
* main.cpp
*********************/

#include <QApplication>
#include <QPixmap>
#include <QPainter>
#include <QPaintEvent>
#include "main.h"
 
MainWindow::MainWindow(QWidget *parent) : QWidget(parent) {
  this->resize(384, 256);
}
 
void MainWindow::paintEvent(QPaintEvent *event)
{
  QPainter painter(this);
  QPixmap image(":/img/sample01.jpg");
  painter.drawPixmap(0,0,image);
}
 
int main (int argc, char* argv[]) {
  QApplication app(argc, argv);
  MainWindow mw;
  mw.show();
  return app.exec();
}
/*********************
* image.qrc
**********************/

<RCC>
    <qresource prefix="/img">
        <file>sample01.jpg</file>
    </qresource>
</RCC>

実行されたアプリケーション
picture