Qt Creator:当我在项目的子目录中有文件时,它不包含在项目范围的搜索中

Posted

技术标签:

【中文标题】Qt Creator:当我在项目的子目录中有文件时,它不包含在项目范围的搜索中【英文标题】:Qt Creator: When I have a file in a subdir of the project, it's not included in project-wide search 【发布时间】:2016-11-04 18:25:11 【问题描述】:

假设我的项目名为foo。我使用 Windows 资源管理器在 foo 根目录中创建了一个名为 subdir 的子目录。我把我的main.qml 文件放在subdir 中。然后我尝试在我的项目中对“文本”进行项目范围的搜索。为此,我按下Ctrl+Shift+F,在Scope 中选择Project "foo",在Search for 中写入“文本”。尽管main.qml 确实包含字符串“text”,但没有找到匹配项。当main.qml在项目根目录下,找到字符串就好了。

这是 Qt Creator 中的错误吗?我可以在选项中修复它吗?

Qt Creator 版本:4.1.0。

补充说明

.pro 文件不包含 main.qml,但 .pro 文件包含 RESOURCES += qml.qrc,qml.qrc 包含 <file>subdir/main.qml</file>。 Creator 中的项目查看器确实在树中显示 main.qml,嵌套为“Resources -> qml.qrc -> / -> subdir ->main.qml”。

如果“项目焦点”意味着它必须是通过右键单击项目并选择“将 'myproj' 设置为活动项目”设置的“活动项目”,那么我满足了该要求。

我尝试在项目中包含一个位于项目根目录中的资源文件(称为“main2.qml”),以便我可以查看它是否自动包含在 .pro 中。它确实被包括在内,如下所示:

DISTFILES += \
    main2.qml

而且,奇怪的是,现在我包含了这个新文件,驻留在子目录中的旧文件也可以搜索。

即使我从项目中删除了 main2.qml,子目录中的文件仍然可以搜索!它们甚至在我的其他项目中变得可搜索,而我没有改变任何东西!

很奇怪。我预计很快搜索就会再次出现问题,所以我仍然想了解可能导致问题的原因

【问题讨论】:

我认为该文件需要实际包含在项目中,然后 Qt 创建者才能查看它以找到一些东西......所以当你更改 main.qml 的位置时,你是否更改了 .pro 文件也包括它? @H.G:请看我的编辑。 【参考方案1】:

    确保 qml 文件是项目的一部分。

    项目范围搜索仅查找属于项目一部分的文件。它们在磁盘上的位置根本不相关。如果它们没有出现在项目树中,则它们不在 probject 中。

    确保搜索的文件模式包括 qml 文件。

    文件模式元素以逗号分隔(例如*.c*, *.h, *.qml)。使用其他分隔符是一个常见的错误。

【讨论】:

以上是关于Qt Creator:当我在项目的子目录中有文件时,它不包含在项目范围的搜索中的主要内容,如果未能解决你的问题,请参考以下文章

无法在 Qt Creator 中启动 gdb.exe

Qt Creator qml:使用(额外)Qt 组件库(ubuntu)

Windows中的Qt Creator - 我如何知道正在使用哪个编译器?

QT Creator QProcess

.qrc 中的图标不会显示在 Qt Creator 之外

QT Creator 构建 qml 应用程序