Qt5でhello
前回、ターミナルからqtcreatorの起動までやった。
けど、そこから先がわからなくてQt本買ってみた。
1.helloがしたい
目標:タイトルバーに"hello"と出して"終了"ボタンで終了するアプリケーション。
まずは"hello"と言う名前のディレクトリを作って、中に"main.cpp"を作る。
$ mkdir hello $ cd hello $ touch main.cpp
作ったmain.cppの中身を本を参考に書く。
//main.cpp #include<QApplication> #include<QLabel> #include<QPushButton> int main(int argc, char *argv[]) { QApplicationapp(argc, argv); QLabel *label = newQLabel("hello"); QPushButton *button = newQPushButton("終了"); QObject::connect(button, SIGNAL(clicked()), &app, SLOT(quit())); label->show(); button->show(); return app.exec(); }
2.qmakeが通らない
hello内にプロジェクトを作ろうとした。
$ qmake --project
すると
qmake: could not exec '/usr/lib/x86_64-linux-gnu/qt4/bin/qmake': No such file or directory
とそんなものないと怒られた。
3.プロジェクトファイルを作れるようにする
必要なパッケージが無いようなので入れる。
$ sudo apt install -y qt5-qmake qt5-default
パッケージを導入してからqmake --project すると、hello.proが無事できた。
4.makeが通らない
プロジェクトファイルが無事できたので、Makefileを作る。
$ qmake hello.pro
これでMakefileができるのでmakeする。
$ make
すると
main.cpp:1:23: fatal error: QApplication: そのようなファイルやディレクトリはありません
とまたもやそんなものないと怒られた。
4.makeできるようにする
参考にした本はQt4。使おうとしている環境はQt5。
という事でQt5向けに変更する。
//main.cpp #include<QtWidgets/QApplication> //Qt4では#include<QApplication>
ただ、このままビルドしても
main.cpp:2:17: fatal error: QLabel: そのようなファイルやディレクトリはありません
とさっきとは異なるものが無いと怒られる。
なので今度はプロジェクトファイルもQt5向けにも変更する。
//hello.pro QT+=widgets //これをプロジェクトファイルの末尾に追記
これでようやっとmakeが通った。
5.helloする
makeすると"hello"と言う実行ファイルができるので、実行する。
$ ./hello
"hello"が見つからない。
と思ったが、ウィンドウを右に伸ばしたら無事出てきた。
ということで、おしまい。