So if you need type checking and binding/change notify, simply declare your property as a member of the root object in your main.qml, and it will be accessible from everywhere in the QML application, because the property will in fact be directly registered into the Qml Context object, which is global by definition.
After Qt 6.*, there is a qt_add_qml_module function in CMake that you can use to add new modules using only CMake. This function will automatically generate the qmldir and resource files.
The question is about embedding a QWidget inside a QML scene. While it is true that it is generally better to keep the application QWidget-based, you may still want to embed a QWidget inside your QML view (which is exactly the case in my application, for example).
After running CMake, QML_IMPORT_PATH is now the user-defined value plus some CMakeLists.txt defined values appended to it. Qt Creator's CMake configuration settings from steps 1-2 will still show the user's value in the table.
Adding your MyTabView.qml to your project in the same directory of main.qml is not sufficient. You have to put your QML file in the Resources (probably main.qrc/qml/) in order to have it deployed.
Qt also supports QML-defined enum types since Qt version 5.10. As an alternative to the C++-based answer by air-dex, you can now also use QML to create enum types:
If I've got a list of things in C++, how do I expose that to QML (in Qt5 / QtQuick 2)? It seems like QML can only understand QObject-derived classes, which is an issue because QObjects can't be put...
I am trying to implement Reading and writing files in QML and came across the linked article from Nokia but have not been able to successfully use the seemingly obvious code example. I think I need...
The imported QML file defines a type whose name is the same as the filename (capitalized, less the .qml suffix). QML calls the type a reuseable component. You use that type name to instantiate an object in the importing QML document (file.) Its not like a C language include, where the text of the included file is inserted into the including file.
For any C++ code to be called from QML, it must reside inside a QObject. What you need to do is create a QObject descended class with your function, register it to QML, instantiate it in your QML and call the function.