README.md: fleshed out doc
This commit is contained in:
@@ -1,2 +1,53 @@
|
||||
# qt5-qml-cpp-cmake-helloworld
|
||||
Simple hello world example using qt5, cml, c++, cmake
|
||||
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
|
||||
1. mkdir build
|
||||
2. cd build
|
||||
3. cmake ..
|
||||
4. make
|
||||
5. run 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
|
||||
Reference in New Issue
Block a user