因此,我决定在我的应用程序中使用KDE Kirigami UI框架,因此我遵循了here的说明。我在应用程序目录中克隆了该存储库,然后在项目文件中添加了一个简单的include(kirigami/kirigami.pri)
。现在可以正常工作了,但是我遇到的问题是,在QML中总是存在错误:QML module not found
导入插件(import org.kde.kirigami 2.9
)时。该项目仍然可以编译并正常运行,并且能够使用所需的UI组件,但是主要问题是Kirigami插件的代码完成和语法突出显示无法正常工作。在here之前曾问过类似的问题,我已经尝试了该线程答案中的所有建议,但没有一个起作用:
-我使用绝对路径和相对路径导入了QQmlEngine::addImportPath
kirigami/src/controls
文件夹。我也尝试过qrc:/
-我在项目文件中添加了QML_IMPORT_PATH += $$PWD/kirigami/src/controls $$PWD/kirigami
行
答案 0 :(得分:1)
当您将鼠标悬停在QML文件中的“找不到模块org.kde.kirigami”错误标记上时,弹出窗口会告诉您Qt Creator正在QML_IMPORT_PATH
中寻找这些文件。它还告诉您如何设置。
通过将QML_IMPORT_PATH += …
添加到您的项目文件中,您已经为基于qmake
的构建过程设置了它。但是,Kirigami项目通常使用CMake,这可能就是您以前的尝试无法奏效的原因。
要为基于CMake的构建系统设置QML_IMPORT_PATH
,应从项目树的根目录打开CMakeLists.txt
文件,并在顶部添加以下部分:
# ------------------------- BEGIN: lists to maintain manually -------------------------
# Directories where Qt Creator can find QML files of Kirigami etc. on your system.
# (This setting is cached in variable QML_IMPORT_DIR, see below. Delete
# ${BUIL_DIR}/CMakeCache.txt to make make changes here effective.)
list(APPEND QML_DIRS "/usr/lib/x86_64-linux-gnu/qt5/qml")
# ------------------------- END: lists to maintain manually -------------------------
# Tell Qt Creator where to find QML files.
# (The build process will work without this, but no code completion etc..)
set(
QML_IMPORT_PATH "${QML_DIRS}"
CACHE STRING "Qt Creator 4.1 extra qml import paths"
)
当然,请将其调整为适合系统的正确目录。在基于Debian / Ubuntu的系统上,以下命令将确定包含从存储库安装的Kirigami QML文件的目录:
dpkg -L qml-module-org-kde-kirigami2 | grep "\.qml"
来源: another answer在StackOverflow上