QT 信号和槽看似connect不上

来源:互联网 发布:java技术支持岗位职责 编辑:程序博客网 时间:2024/05/07 08:00

调试时发现有些信号发射了,但是与之相关的槽函数没有执行的原因,目前遇到的有:

1.语法错误

仔细检查格式是不是对的,然后参数是否对应

2.一个类中的信号与另一个类中的槽函数

在SIGNAL()和SLOT()中的括号里写的直接就是槽和信号的名字,不用再加作用域。

例如类A和类B,A中的某个槽函数Slot_A()与B的信号Signal_B(),然后A在B中实例化为a,那么在B中connect(this, Signal_B(), &a, A::Slot_A() );这句话错的蛮严重的。

应为connect(this, SIGNAL( Signal_B() ), &a, SLOT( Slot_A() ));

3.有遇到一个:槽函数没有声明成public/protected... slots: ,而只声明成一个函数了。

4.在a.exec()前加无限循环了。参见 Qt main函数a.exec()函数。

2017/11/20 今天有一个同事也遇到了这个问题,他是在Qt那个主的类中的一个槽函数有while死循环,而这个槽函数的信号一直被一个线程发射,所以orz。

待增。。。。


原创粉丝点击