[C++] 12 Qt5 GUIアプリ作成 QMainWindow

[M1 Mac, Big Sur 11.6.5]

Qt5でデプロイの目処が立ったので、ようやくPyQt6からの移植に着手しました。

さすが古株のウィジェットツールキットだけあってかなり前からの記事が検索でヒットしました。ただ記事の日付やバージョンを明記していないため、陳腐化した情報に振り回されることもありました。

自分もそうですがせめて記事の日付やバージョン情報をきちんと書いておかないと後進の役に立たないです。

まずはQMainWindowの座標とサイズ、背景色を設定しました。

#include <QtWidgets/QApplication>
#include <QtWidgets/QLabel>
#include <QtWidgets/QWidget>
#include <QMainWindow>

int main(int argc, char *argv[]){
    QApplication a(argc, argv);

    QMainWindow *mainWin = new QMainWindow();
    mainWin->setGeometry(100,100,360,220);
    mainWin->setWindowTitle("IMAGE INSPECTOR");
    mainWin->setStyleSheet("QMainWindow {background: '#708090';}");
    
    mainWin->show();
    return a.exec();
}

[C++] 11 Qt5 appファイル作成&デプロイ qmake

[M1 Mac, Big Sur 11.6.5]

Qt6のCMakeがまだよく分からないので、Qt5にダウングレードしてデプロイしました。Hello WorldレベルであればApple Siliconでも問題は発生しませんでした。

Java(Oracle)はノンIDE派にも優しくてユーザーへの負担が少なくなるように配慮されている印象ですが、最新のQt6については高度化が著しい上に情報が少なく、専用IDEであるQt Creatorを使わないと厳しい感じがします。いずれノンIDEで挑戦したいです。

手順は以下の通りです。

1.Qtの公式サイトに登録し、Qt5.15.2(27.2GB)をダウンロード&インストールする。

2.Qtのバイナリがあるところへパスを通す。今回は優先順位を最上位にしました。

export PATH=[HOME]/Qt/5.15.2/clang_64/bin:$PATH

3.プロジェクトディレクトリをカレントディレクトリにして、以下コマンドでMakefileとproファイルを作成する。

qmake -project && qmake

4.アイコンを設定するため、proファイルに以下内容を追記する。

# Qt5以降用
QT+=widgets

# アイコン設定
ICON = images/ImageInspector.icns
RESOURCE_FILES.files = $$ICON
RESOURCE_FILES.path = Contents/Resources
QMAKE_BUNDLE_DATA += RESOURCE_FILES

5.makeコマンドでappファイルを作成する。

6.以下コマンドでアプリをデプロイする。
macdeployqtコマンドへのパスは通っているはずなのにエラーになり、仕方なく絶対パスを使いました。サイズはHello Worldでも40MBになりました。PyQt6よりもかなり小さくなったものの、まだ大きいです。

[HOME]/Qt/5.15.2/clang_64/bin/macdeployqt ImageInspector.app/