为什么“查找用法”不适用于不同子项目中的信号

时间:2014-11-30 07:40:27

标签: c++ qt qt4 signals qt-creator

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

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

1 个答案:

答案 0 :(得分:2)

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

Make the Qt 4 style signal-slot usages easy to find across subprojects

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

  • All Projects

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

    C-K ! grep -rn MySignal MYPATH
    

    C-K ! findstr MySignal MYPATH
    

这也可能是他们拒绝支持Qt 4样式信号槽语法的原因,因为它相对容易解决,Qt 4本来就不是未来,特别是在这种情况下有一些优点超越新风格。你可以在这里阅读更多相关内容:

Signals and Slots in Qt5

如果你的项目很难移植到Qt 5,那么这些快速的解决方法暂时是可以接受的。

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