为什么"find usage"不适用于不同子项目中的信号

why "find usage" does not work for signals in different subprojects

本文关键字:子项目 信号 适用于 find usage 不适用 为什么      更新时间:2023-10-16

我在"Windows 7"中使用"Qt 4.8.4"和"QtCreator 3.0"。我的应用程序中有几个子项目。当我在一个子项目中对信号使用"查找使用情况"时,搜索结果中仅列出了当前子项目中该信号的使用情况。

如何通过"查找使用情况"工具在所有子项目中查找一个信号的使用情况?

有人

可能会争辩说这种行为是可以接受的,因为这是一种将搜索限制在一个子项目的方法。话虽如此,理论上可以添加一个选项来查找所有子项目。我刚刚在他们的跟踪器上为您创建了一个报告,冒着可能被拒绝的风险:

使Qt 4风格的信号槽用法在子项目中易于查找

根据您如何看待它,快速解决方法可能是通过以下方式查找信号的使用情况:

  • All Projects中搜索

  • 使用定位器并在Windows上安装grep或使用findstr:

    C-K ! grep -rn MySignal MYPATH
    

    C-K ! findstr MySignal MYPATH
    

这也可能是他们可能拒绝支持Qt 4风格信号槽语法的原因,因为它相对容易解决,而Qt 4本质上不是未来,特别是在这种情况下,与新风格相比有一些优势。您可以在此处阅读有关此内容的更多信息:

Qt5中的信号和插槽

如果您的项目不适合移植到 Qt 5,那么这些快速解决方法暂时相对可以接受。

即使你可以移植过来,你也可能会遇到在QtCreator实例中打开的Qt项目,其代码不在控制器下。但是,在这些情况下,您可以使用快速解决方法,直到他们修复它。Qt 4信号槽语法不太可能在即将到来的所有项目中被闲置。