код ключа следующий:
Код: Выделить всё
**//CMakeLists.txt**
add_subdirectory(mybackend)
qt_add_executable(appMyMain
main.cpp
)
qt_add_qml_module(appMyMain
URI "MainApp"
RESOURCE_PREFIX /mycompany/mainapp
VERSION 1.0
QML_FILES Main.qml
)
target_link_libraries(appMyMain PRIVATE Qt6::Quick BackendLib)
qt_finalize_executable(appMyMain)
Код: Выделить всё
**//main.cpp**
int main(int argc, char *argv[])
{
QGuiApplication app(argc, argv);
QQmlApplicationEngine engine;
engine.addImportPath(":/mycompany/imports");
const QUrl url(u"qrc:/mycompany/mainapp/Main.qml"_qs);
QObject::connect(&engine, &QQmlApplicationEngine::objectCreated,
&app, [url](QObject *obj, const QUrl &objUrl) {
if (!obj && url == objUrl)
QCoreApplication::exit(-1);
}, Qt::QueuedConnection);
engine.load(url);
return app.exec();
}
Код: Выделить всё
**//Main.qml**
import QtQuick
import QtQuick.Controls
import MyCompany.Backend
Код: Выделить всё
**//mybackend/CMakeLists.txt**
qt_add_library(BackendLib STATIC)
set_target_properties(BackendLib PROPERTIES AUTOMOC ON)
qt_add_qml_module(BackendLib
URI "MyCompany.Backend"
RESOURCE_PREFIX /mycompany/mainapp
VERSION 1.0
SOURCES
MyBackend.h
MyBackend.cpp
)
target_link_libraries(BackendLib PRIVATE Qt6::Quick)
Код: Выделить всё
**//mybackend/Mybackend.h**
#include
#include
class MyBackend : public QObject
{
Q_OBJECT
QML_ELEMENT
Q_PROPERTY(QString userName READ userName WRITE setUserName NOTIFY userNameChanged)
Код: Выделить всё
QQmlComponent: attempted to load via a relative URL 'qrc:qt/qml/mycompany/mainapp/Main.qml' in resource file system. This is not fully supported and may not work
QQmlApplicationEngine failed to load component
qrc:qt/qml/mycompany/mainapp/Main.qml: No such file or directory
Подробнее здесь: https://stackoverflow.com/questions/798 ... applicatio
Мобильная версия