如何在 Qt Cmake 项目中使用 QML_IMPORT_PATH?

问题描述 投票:0回答:2

我需要为项目提供一些模块。

现在,它在 QT 目录中查找它们(我已将其安装在

$HOME
中),但我不想让它在
/usr/lib/x86_64-linux-gnu/qt5/qml/
中搜索。

我尝试过的:
a)

QML_IMPORT_PATH
中定义
.bashrc
- 没有成功

b)

$HOME/Qt5.5.1/Tools/QtCreator/bin/qml/
中复制所需模块:

这里我们有一些不同的东西。如果我打开

.qml
文件 - 它不会在
import
行下划线(这是可以的)。但是,如果我使用控制台运行可执行文件 - 相同的消息
module org.bla.bla is not installed

所以,如果复制没有帮助,也许我必须让 QtCreator(或其他)在适当的文件夹中搜索模块,但是如何?

UPD。
好吧,您可以使用

QML2_IMPORT_PATH
定义模块的路径(不仅仅是
QML
,而是
QML2
)。正如我上面提到的,我在
$HOME/Qt5.5.1/Tools/QtCreator/bin/qml/
中复制了模块文件夹,这是完全错误的!正确的方法是复制到
$QT_HOME/5.5/gcc_64/qml/
。它现在运行良好,但我不能说它“如何”工作。不幸的是,这与我提出的问题无关。因此,我不会要求别人回答我的问题,但也不会关闭它,直到找到真正的问题并在这里提及,这样我才能帮助别人。

c++ qt
2个回答
19
投票

借助即将推出的新 QtCreator 4.1,您将能够做到这一点。只需在 CMake 缓存中设置

QML_IMPORT_PATH
即可。如果您有多个路径,请用
;
分隔它们,这就是 CMake 中列表的完成方式。

list(APPEND QML_DIRS "dir1")
list(APPEND QML_DIRS "dir2")
set(QML_IMPORT_PATH "${QML_DIRS}" CACHE STRING "Qt Creator 4.1 extra qml import paths")

10
投票

这是对 @Tom Deblauwe 答案的改进,它允许将系统特定的本地设置保留在存储库的 makefile 之外。它假设您使用 Qt Creator 作为 IDE。

  1. 在 Qt Creator 中,打开“Projects”侧边栏选项卡,然后转到“Build & Run → [您的构建配置条目] → Build → CMake”。

  2. 在您找到的 CMake 配置设置列表中,根据您的系统设置设置

    QML_IMPORT_PATH
    的值。多个目录分开 与“
    ;
    ”。

  3. 您还可以在存储库的

    CMakeLists.txt
    makefile 中提供一些常见的默认设置,以便具有常见设置的用户无需设置其
    QML_IMPORT_PATH
    。下面的代码不会覆盖用户的
    QML_IMPORT_PATH
    ,而是追加到它的后面。您可以将以下内容添加到
    CMakeLists.txt

    # Directories where Qt Creator can find QML files.
    # (Not needed for builds, but makes Qt Creator code completion happy.)
    list(APPEND QML_IMPORT_PATH "/example/path/to/qml")
    list(APPEND QML_IMPORT_PATH "/second/example/path/to/qml")
    
    # Prevent adding duplicate values at each run of CMake.
    list(REMOVE_DUPLICATES QML_IMPORT_PATH)
    
    # The variable is cached in ${BUILD_DIR}/CMakeCache.txt. We need FORCE to 
    # change it there immediately. Also, add a comment to the cache file.
    set(QML_IMPORT_PATH ${QML_IMPORT_PATH}
        CACHE STRING "Qt Creator 4.1 extra qml import paths"
        FORCE
    )
    
  4. 运行 CMake 后,

    QML_IMPORT_PATH
    现在是用户定义的值加上附加的一些
    CMakeLists.txt
    定义的值。步骤 1-2 中的 Qt Creator 的 CMake 配置设置仍将在表中显示用户的值。但是当鼠标悬停在该值上时,完整的值包括。附加部分显示在弹出窗口中。

© www.soinside.com 2019 - 2024. All rights reserved.