用Qt进行信号与信号槽连接后,会出现信号槽不响应信号的情况,原因可能是以下的情况:
-
类没有声明Q_OBJECT;
-
槽函数没有定义为pubic/private slots;
-
信号和槽之间存在参数传递,但是二者的参数数量或者类型不一致(信号里的参数数量可以多于槽函数里的参数数量,但是二者都有的参数,类型必须对应)
-
事件被子控件过滤掉了。比如QListWidget,当QListWidgetItem已经处理keypress事件后,QListWidget就不能响应itemDoubleClicked事件了
-
信号槽的参数是自定义的,这时需要用qRegisterMetaType注册一下这种类型
本文由博客一文多发平台 OpenWrite 发布!