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

时间:2017-10-04 20:34:38

标签: 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()));,那就非常好了,这样我就可以在F2slot()(转到定义)并放入breakpoint它。
  2. 明文搜索会在其他类中返回一堆同名的无关信号,因此也没有用。

1 个答案:

答案 0 :(得分:1)

您可以使用New Signal Slot Syntax

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

通过此连接,您可以找到用法,Qt将找到连接线。

sample code image