c++ - 跟随发出的信号到其连接的插槽?

标签 c++ qt debugging signals-slots

我知道 Qt 信号被放入事件队列,然后在事件循环看到它时调用连接的槽。所以在调试时“步入”它是没有意义的。但我真的很想知道,在一个足够大的应用程序中,我无法一次记住所有这些,控制流在哪里结束。

那么有没有一种方法可以找到连接到信号的插槽,或者可能基于 connect(...);调用或实际上在调试时?


在 Qt Creator 3.5.1 中(基于 Qt 5.5.1(GCC 5.2.1 20151129,64 位)):

  1. Ctrl+Shift+U (查找用法)仅返回 emit signal();在来源和void signal();在标题中。
    • 如果它也能返回connect(..., SIGNAL(signal()), ..., SLOT(slot()));就太好了这样我就可以F2 (转到定义)slot()并放一个 breakpoint
  2. 明文搜索会返回一堆在其他类中具有相同名称的不相关信号,因此这也没什么用。

最佳答案

您可以使用 New Signal Slot Syntax :

connect(sender, &Sender::valueChanged,receiver, &Receiver::updateValue);

通过这个连接你可以找到用法,Qt会找到连接线。

sample code image

关于c++ - 跟随发出的信号到其连接的插槽?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46573719/

相关文章:

javascript - 无法覆盖谷歌应用脚​​本的 console.log()

android - 如何在跳过循环后调试 for 循环

c++ - std::bind 可变参数模板、绑定(bind)参数和占位符

c++ - 在 Mac OS X Mojave 上使用 AppleClang 编译和链接 OpenMP

c++ - C++ 中 and() 函数的用途

c++ - 连接 QSqlDatabase 有什么区别?

qt - 如何在鼠标单击 QtQuick2 TableView 时获取列号

c++ - 两个不同类的通用函数

c++ - 是否保证在调用其成员函数之前初始化对象?

qt - Qt 是否强制系统语言环境?