パソコンでQt CreaterでGUIを作成してRaspberry Piで実行

Raspberry Pi 3へQT5のインストール」でRaspberry Pi 3にQT5.8.1をインストールしました。「Raspberry Pi で中華液晶パネルの表示」でRaspberry Pi 3に中華液晶パネルを接続しました。パソコンにQt Createrをインストールして、Qt Createrの「デザイン」により表示画面を作成して、作成したコードをRaspberry Pi 3に持ってきて、コンパイルして実行します。

Windows7へのQt Createrのインストール

Windows 7 Pro 32ビット版にQt Createrをインストールします。Qt Createrのインストーラは、「LGPL版|Qt キュート」の「Qt 5.7.0 Windows 32-bit、MinGW 5.3.0 (1.1 GB) 」を使用します。これによりQt 5.7.0のライブラリと Qt Creator4.0.2 がインストールされます。

Qt Createrを使用したQtウィジェットアプリケーションの作成・実行

インストールしたQt Createrを使用してQtウィジェットアプリケーションを作成し、パソコン上で実行します。Qt Createrを起動して表示された画面の「ファイル」メニューを選択し、「ファイル/プロジェクトの新規作成」を選択すると、次のような画面が表示されます。プロジェクトの「アプリケーション」を選択し、「Qtウィジェットアプリケーション」を選択し、選択ボタンを押してプロジェクトを作成します。

Qtウィジェットアプリケーションのプロジェクトの作成

作成したプロジェクトで、左側に表示される「デザイン」ツールアイコンをクリックして、表示されたデザイナーを使用して、今回はRadioButtonを作成し、テキストは「TomoSoft」とします。「ビルド」メニューから「すべてビルド」を選択するとコンパイル&ビルドが行われます。

Qt CreaterでGUI作成

「デバッグ」メニューから「デバッグ開始」を選択すると作成したプログラムが実行され、次の画面がパソコン上に表示されます。

Qtプログラムの実行

Qt Designerフォームの作成

Qt Createrでプロジェクトを作成しないで、Qt Designerフォームを直接作成したい場合は、メニューの「ファイル」「ファイル/プロジェクトの新規作成」を順次選択し、次のように「ファイルとクラス」を「Qt」、「Qt Designerフォーム」を選択します。

Qt Designerフォームの作成

次の画面が表示されるので、フレームのテンプレートを選択していきます。

フレームテンプレートの選択

Raspberry Pi 3でプログラムの実行

Qt Createrで作成したソースコードをRaspberry Pi 3にコピーして、ビルドして実行します。最初にRaspberry Pi 3で次のコマンドを入力してMakefileを作成します。

$ qmake
Info: creating stash file /home/pi/qtsample/.qmake.stash

Makefileを作成すると、次のコマンドを入力して実行ファイルを作成します。

$ qmake
/usr/local/qt5/bin/uic mainwindow.ui -o ui_mainwindow.h
/usr/bin/g++ -c -pipe -marm -mfpu=vfp -mtune=arm1176jzf-s -march=armv6zk -mabi=aapcs-linux -mfloat-abi=hard -O2 -std=gnu++11 -Wall -W -D_REENTRANT -fPIC -DQT_NO_DEBUG -DQT_WIDGETS_LIB -DQT_GUI_LIB -DQT_CORE_LIB -I. -I/usr/local/qt5/include -I/usr/local/qt5/include/QtWidgets -I/usr/local/qt5/include/QtGui -I/usr/local/qt5/include/QtCore -I. -I/opt/vc/include -I/opt/vc/include/interface/vcos/pthreads -I/opt/vc/include/interface/vmcs_host/linux -I. -I/usr/local/qt5/mkspecs/devices/linux-rasp-pi-g++ -o main.o main.cpp
/usr/bin/g++ -c -pipe -marm -mfpu=vfp -mtune=arm1176jzf-s -march=armv6zk -mabi=aapcs-linux -mfloat-abi=hard -O2 -std=gnu
     ・・・
     ・・・
es/linux-rasp-pi-g++ -o moc_mainwindow.o moc_mainwindow.cpp
/usr/bin/g++ -Wl,-rpath-link,/opt/vc/lib -Wl,-rpath-link,/usr/lib/arm-linux-gnueabihf -Wl,-rpath-link,/lib/arm-linux-gnueabihf -mfloat-abi=hard -Wl,-O1 -Wl,-rpath,/usr/local/qt5/lib -o test main.o mainwindow.o moc_mainwindow.o -L/opt/vc/lib -L/usr/local/qt5/lib -lQt5Widgets -lQt5Gui -lQt5Core -lGLESv2 -lpthread

次のコマンドで実行ファイルを実行する。

$ ./test
Unable to query physical screen size, defaulting to 100 dpi.
To override, set QT_QPA_EGLFS_PHYSICAL_WIDTH and QT_QPA_EGLFS_PHYSICAL_HEIGHT (in millimeters).

中華液晶パネルに次のように表示されます。ラジオボタンのテキストが一部切れています。フォント等の調整が必要になりそうです。

Raspberry Piでの実行