问:
pyqt 装饰器自动连接信号与槽 没有作用
答:
2. 装饰器调用时机不对。PyQt对象需要先创建,然后装饰器才能自动连接其信号与槽。
3. 未调用装饰器。请确保函数后添加了装饰器,形式如`@connects('clicked')`
4. 对象类型错误。装饰器在QDialog、QPushButton等QWidget类型才能工作。
5. 信号名错误。请检查连接的信号名是否正确,如`clicked` 而非
click
。6. 槽函数未定义。被装饰的槽函数需要在装饰器之前定义。
7. 槽函数参数不匹配。信号与槽函数参数需要一致。
8. 装饰器作用域问题。请确保装饰器和槽函数在同一个作用域中。
可尝试如下修正:
- 检查并修改装饰器定义
- 确保装饰器在对象创建之后调用
- 校验信号名和槽函数定义
- 修正槽函数参数
- 让装饰器和槽函数在同一作用域生效
如果仍然无法工作,请提供更多代码方便进一步分析。希望以上信息能有助于解决你的问题。如果还有任何疑问,欢迎随时提出,我会尽量回答。