Qt + OpenCVでアプリを作る際の注意点をまとめました.
コンパイル手順
qmake -project
qmake
make
バージョン確認
qmake -v
バージョン変更方法
qmakeのバージョンが4になっていて,qt5から導入された文法で書かれたプログラムを実行する場合コンパイルエラーとなる場合がある.僕の場合,
connect(sender, &QObject::destroyed, this, &MyObject::objectDestroyed);
でエラー.(qt4では
connect(sender, SIGNAL(destroyed()), this, SLOT(objectDestroyed()));
と書かないといけない)
QT_SELECT=qt5 qmake --version
を実行してバージョン情報が表示される場合はQt5がすでにインストールされているので,デフォルトのバージョンを切り替える必要がある.
vim /usr/lib/x86_64-linux-gnu/qt-default/qtchooser/default.conf
で
/usr/lib/x86_64-linux-gnu/qt4/bin
の行を
/usr/lib/x86_64-linux-gnu/qt5/bin
と変更することでデフォルトのバージョンを変更できる.
include に関する設定
#include <***>
に関する設定は(project名).proの末尾に追記する
QApplicationクラスの利用
QT += widgets
を追記
c++11コンパイラの利用
QMAKE_CXXFLAGS += -std=c++11
を追記
OpenCVの利用
QT_CONFIG -= no-pkg-config
CONFIG += link_pkgconfig
PKGCONFIG += opencv
を追記
またMacの場合実行ファイルは
(プロジェクト名).app/Contents/MacOS/(プロジェクト名)
に作られるため注意
実装上のハマりポイント
class MainWindow : public QWidget
{
Q_OBJECT
public:
MainWindow()
//......
public slots:
setImage(); //ボタンが押された時のslot関数
}
Q_OBJECT
を書かないとSLOT関数が認識されない