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 qml:使用(额外)Qt 组件库(ubuntu)