所以我决定在我的应用程序中使用KDE Kirigami UI框架,所以我按照指示进行了如下操作 此处. 我把repo克隆到我的应用目录中,然后用一个简单的方法添加它。include(kirigami/kirigami.pri)
在我的项目文件中。
现在这可以工作了,但是我遇到的问题是,在QML中总是出现错误。QML module not found
当我导入插件(import org.kde.kirigami 2.9
). 该项目仍然可以正常编译和运行,我也可以使用我需要的UI组件,但是主要的问题是,Kirigami插件的代码完成和语法高亮不能工作。
之前也有人问过类似的问题 此处我尝试了该主题答案中的所有建议,但都没有成功。
我导入了 QQmlEngine::addImportPath
的 kirigami/src/controls
使用绝对和相对路径的文件夹。我也试过用 qrc:/
.
我加了一个 QML_IMPORT_PATH += $$PWD/kirigami/src/controls $$PWD/kirigami
行到我的项目文件。
当你把鼠标放在QML文件中的 "module org.kde.kirigami not found "错误标记上时,弹出的窗口会告诉你Qt Creator正在寻找在 QML_IMPORT_PATH
为这些文件。它还告诉你如何设置。
通过添加 QML_IMPORT_PATH += …
到您的项目文件中,您已经将它设置为一个 qmake
基于构建过程。然而,Kirigami项目通常使用CMake,这可能是你之前的尝试没有成功的原因。
要设置 QML_IMPORT_PATH
对于一个基于CMake的构建系统,你会打开 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"
源文件 另一个答案 在StackOverflow上