Я пытаюсь добавить 3D-возможности в существующее приложение Qt. В моем project.pro
файле я установить переменную QT:модуль «Qt3D.Core» не установлен
TEMPLATE = subdirs
QT += 3dcore 3drender 3dinput 3dquick qml quick 3dquickextras
SUBDIRS = plugins/datasource \
plugins/screenManager
qml.files = apps modules sysui i18n am-config.yaml Main*.qml
INSTALLS += qml
Edit: я установить переменные окружения QML_IMPORT_TRACE
1
. Теперь я вижу следующее, когда я пытаюсь запустить приложение:
[DBG | default] QQmlImportDatabase::addImportPath: "/usr/lib/x86_64-linux-gnu/qt5/qml" [:0]
[DBG | default] QQmlImportDatabase::addImportPath: "/usr/local/Qt-5.7.0/include" [:0]
[DBG | default] QQmlImportDatabase::addImportPath: "/usr/local/bin" [:0]
[DBG | default] QQmlImportDatabase::setImportPathList: ("/usr/local/bin", "/usr/local/Qt-5.7.0/include", "/usr/lib/x86_64-linux-gnu/qt5/qml", "/home/aras/Projects/UI/imports/shared", "/home/aras/Projects/UI/imports/system") [:0]
[CRIT | am.system] WARNING: could not register service org.freedesktop.Notifications on D-Bus (unix:abstract=/tmp/dbus-c9i1pNpEVT): [:0]
[DBG | default] QQmlImports(file:///home/aras/Projects/UI/Main.qml)::addLibraryImport: "QtQuick" 2.5 as "QQ2" [:0]
[DBG | default] QQmlImports(file:///home/aras/Projects/UI/Main.qml)::importExtension: loaded "/usr/lib/x86_64-linux-gnu/qt5/qml/QtQuick.2/qmldir" [:0]
[DBG | default] QQmlImportDatabase::registerPluginTypes: "QtQuick" from "/usr/lib/x86_64-linux-gnu/qt5/qml/QtQuick.2" [:0]
[DBG | default] QQmlImports(file:///home/aras/Projects/UI/Main.qml)::addLibraryImport: "QtQuick.Window" 2.2 as "" [:0]
[DBG | default] QQmlImports(file:///home/aras/Projects/UI/Main.qml)::importExtension: loaded "/usr/lib/x86_64-linux-gnu/qt5/qml/QtQuick/Window.2/qmldir" [:0]
[DBG | default] QQmlImportDatabase::registerPluginTypes: "QtQuick.Window" from "/usr/lib/x86_64-linux-gnu/qt5/qml/QtQuick/Window.2" [:0]
[DBG | default] QQmlImports(file:///home/aras/Projects/UI/Main.qml)::addFileImport: "sysui" -1.-1 as "" [:0]
[DBG | default] QQmlImports(file:///home/aras/Projects/UI/Main.qml)::addLibraryImport: "controls" 1.0 as "" [:0]
[DBG | default] QQmlImports(file:///home/aras/Projects/UI/Main.qml)::importExtension: loaded "/home/aras/Projects/UI/imports/shared/controls/qmldir" [:0]
[DBG | default] QQmlImports(file:///home/aras/Projects/UI/Main.qml)::addLibraryImport: "utils" 1.0 as "" [:0]
[DBG | default] QQmlImports(file:///home/aras/Projects/UI/Main.qml)::importExtension: loaded "/home/aras/Projects/UI/imports/shared/utils/qmldir" [:0]
[WARN | default] QQmlApplicationEngine failed to load component [:0]
[WARN | default] file:///home/aras/Projects/UI/Main.qml:6 module "Qt3D.Core" is not installed
[:0]
[CRIT | am.system] ERROR: Qml scene does not have a root object [:0]
Qt установлен в /usr/local/Qt-5.7.0
:
$ which qml
/usr/local/Qt-5.7.0/bin//qml
[email protected]:~$ which qmake
/usr/local/Qt-5.7.0/bin//qmake
Внутри моей .qml
файл я пытаюсь импортировать 3D библиотеки мне нужно:
import Qt3D.Core 2.0
import Qt3D.Render 2.0
Тем не менее, когда я пытаюсь запустить свое приложение, я получаю следующие ошибки:
...module "Qt3D.Render" is not installed
...module "Qt3D.Core" is not installed
Я думал, что это все, что мне нужно. Что мне здесь не хватает?
«Я установил $ QML2_IMPORT_PATH в каталог include внутри моей установки Qt», это определенно неправильно - пути импорта QML не имеют ничего общего с C++. Более того, вы не должны устанавливать эту переменную env, чтобы найти импорт QML, поставляемый с Qt. Так что просто оставьте его незаметным. – peppe
Спасибо за разъяснение. Можете ли вы рассказать мне, как и где я должен установить эту переменную? Это в файле 'project.pro'? Несколько документов относятся к этой переменной, но не говорят, как ее установить. – Aras
Это переменная среды, поэтому вы устанавливаете ее при запуске своего исполняемого файла. Если вы используете Creator, на панели Project (слева), запустите настройки для данного набора (вверху) и измените там окружение. Но все дело в том, что * вам не нужно устанавливать его * для модулей, входящих в Qt. Если эти модули установлены, но не найдены, установите вместо переменной среды QML_IMPORT_TRACE значение 1 и убедитесь, что они действительно найдены. – peppe