https://riptutorial.com/qml/example/22330/creating-custom-elements-in-cplusplus