После поиска, тестирования и компиляции в течение полных 3 дней я пришел к следующему:
Шаг 0: Используйте файлы ресурсов Qt, чтобы поместить в него свои собственные файлы QML
Шаг 1:Как обычно, скомпилируйте приложение с динамической связью
Шаг 2: Скопируйте конечный двоичный файл в пустую папку
Шаг 3: Запустите windeploy.exe
для файла и используйте --qmldir
садрес папки, содержащей ваши QML.Это должно добавить все плагины в правильной иерархии каталогов (которая является ключом)
Шаг 4: Удалить все файлы QML (*.qml
) из всех папок, созданных windeploy.Остальные файлы *.dll,
plugins.qmltypes,
qmldir
(которые также являются другими ключами, позволяющими удалять простые файлы QML)
Шаг 5 (необязательно): Вы также можете поместить все plugins.qmltypes
,Файлы qmldir
(которые являются простыми текстовыми файлами и могут быть просто отредактированы конечным пользователем) в файл ресурсов Qt (но иерархия папок в файле ресурсов должна оставаться неизменной) путем вырезания и вставки темы в кореньисходной папки и добавив их в файл qrc, затем используйте этот код в вашей функции main
:
engine.addImportPath(QStringLiteral("qrc:/"));
Примечание : если используется шаг 5, могут быть некоторыепроблема в использовании стилей QML, отличных от Default
(например, Univeral,
...), но без шага 5 все стили можно использовать