我知道 Qt 信号被放入事件队列,然后在事件循环看到它时调用连接的槽。所以在调试时“步入”它是没有意义的。但我真的很想知道,在一个足够大的应用程序中,我无法一次记住所有这些,控制流在哪里结束。
那么有没有一种方法可以找到连接到信号的插槽,或者可能基于 connect(...);
调用或实际上在调试时?
在 Qt Creator 3.5.1 中(基于 Qt 5.5.1(GCC 5.2.1 20151129,64 位)):
-
Ctrl+Shift+U
(查找用法)仅返回emit signal();
在来源和void signal();
在标题中。- 如果它也能返回
connect(..., SIGNAL(signal()), ..., SLOT(slot()));
就太好了这样我就可以F2
(转到定义)slot()
并放一个breakpoint
- 如果它也能返回
- 明文搜索会返回一堆在其他类中具有相同名称的不相关信号,因此这也没什么用。
最佳答案
您可以使用 New Signal Slot Syntax :
connect(sender, &Sender::valueChanged,receiver, &Receiver::updateValue);
通过这个连接你可以找到用法,Qt会找到连接线。
关于c++ - 跟随发出的信号到其连接的插槽?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46573719/