58 lines
1.6 KiB
Markdown
58 lines
1.6 KiB
Markdown
# CAUTION: use MinimalQml repo instead.
|
|
|
|
# qt5-qml-cpp-cmake-helloworld
|
|
Simple hello world example using qt5, qml, c++, cmake
|
|
|
|
## Table of Contents
|
|
|
|
* [Background](#background)
|
|
* [Build Instructions](#buildinstructions)
|
|
* [hw.qml](#hw.qml)
|
|
* [main.cpp](#main.cpp)
|
|
* [CMakeLists.txt](#cmakelists.txt)
|
|
|
|
|
|
## Background
|
|
This is a simple helloworld example:
|
|
|
|
* opens up a window an displays the text "Hello world!"
|
|
* The window and text are configured through a qt5 qml file.
|
|
* a simple C++ main is used to start things up
|
|
* cmake is used to configure the build
|
|
|
|
I spent a number of hours searching for something like this. An example that showed the barebones of what was needed to have C++ make use of a qt5 qml file. But most of the examples presumed the use of **gmake** (which is the primary build system for Qt). For my need, I wanted to see how to things needed to be set up for **cmake**.
|
|
|
|
As I didn't find what I was looking for, I ended up writing this example from bits of info I could find.
|
|
|
|
## Build Instructions
|
|
Assuming you already have an appropriate qt5 environment.
|
|
|
|
1. mkdir build
|
|
2. cd build
|
|
3. cmake ..
|
|
4. make
|
|
5. qmlApp
|
|
|
|
For osx (macOS) users for step 3 you may need something like:
|
|
|
|
```
|
|
cmake .. -DCMAKE_PREFIX_PATH="$(brew --prefix qt5 )"
|
|
```
|
|
|
|
## hw.qml
|
|
`qml/hw.qml` is a simple qml file that creates a rectangle and displays the text "Hello world!".
|
|
|
|
## main.cpp
|
|
`main.cpp` sets up Qt5 and opens up the `hw.qml` to have the GUI display.
|
|
|
|
## CMakeLists.txt
|
|
This is the **cmake** config file.
|
|
|
|
Of note:
|
|
|
|
* it looks for the appropriate Qt5 packages
|
|
* `find_packages`
|
|
* what libraries to link with
|
|
* `target_link_libraries`
|
|
* copy the `qml` directory locally
|