PyQt学习随笔:自定义信号连接时报AttributeError: 'PyQt5.QtCore.pyqtSignal' object has no attribute 'connect'
2024-08-24 05:35:49
如果使用自定义信号,一定要记得信号是类变量,必须在类中定义,不能在实例方法中定义,否则后面发射信号和连接槽方法时都会报错。
案例:
class configWin(ui_configWin.Ui_configWin,QtWidgets.QWidget):
def __init__(self,parent=None):
super().__init__(parent)
self.setupUi(self)
self.sizeChanged = QtCore.pyqtSignal(int)
def resize(self,width,height):
self.sizeChanged.emit(width)
print("sizeChanged....")
super().resize(width,height)
class mainWin(QtWidgets.QMainWindow,ui_mainWin.Ui_mainWindow):
def __init__(self):
super().__init__()
self.setupUi(self)
self.configWin = configWin(self)
self.configWin.sizeChanged.connect(self.sizeChanged)
结果执行时报错:
AttributeError: ‘configWin’ object has no attribute ‘sizeChanged’
AttributeError: ‘PyQt5.QtCore.pyqtSignal’ object has no attribute ‘connect’
正确的做法应该是:
class configWin(ui_configWin.Ui_configWin,QtWidgets.QWidget):
sizeChanged = QtCore.pyqtSignal(int)
def __init__(self,parent=None):
super().__init__(parent)
self.setupUi(self)
def resize(self,width,height):
self.sizeChanged.emit(width)
super().resize(width,height)
class mainWin(QtWidgets.QMainWindow,ui_mainWin.Ui_mainWindow):
def __init__(self):
super().__init__()
self.setupUi(self)
self.configWin = configWin(self)
self.configWin.sizeChanged.connect(self.sizeChanged)
更多自定义信号的内容请参考《第15.19节 PyQt(Python+Qt)入门学习:自定义信号与槽连接》。
老猿Python,跟老猿学Python!
最新文章
- CI Weekly #5 | 微服务架构下的持续部署与交付
- CSS Reset样式重置
- yii2.0 的数据的 查 删
- 消息中间件Notify和MetaQ-阿里中间件
- How to: Fix a network printer suddenly showing as offline in Windows Vista, 7 or 8 « Robin's Blog
- php防止ddos,dns,集群攻击的实现代码
- IOS 逆向工程之砸壳
- Symfony2 Doctrine从现有Database生成Entity(转载自http://blog.it985.com/6809.html)
- BOOST::Signals2
- objective-C学习笔记(三)数据成员:属性与实例变量
- C# 《编写高质量代码改善建议》整理&;笔记 --(五)成员设计
- javascript面向对象习题答案
- django系列3 :创建模型
- 将数据转换成树型层级的Json格式的String
- Centos7上安装java
- MyBatis学习笔记(二) Executor
- 剑指offer——python【第49题】把字符串转换成整数
- mod libs 课堂
- sqlserver 建表语句,获取建表语句的存储过程,包括排序规则,索引,字段说明,支持同时生成多个表
- 多线程二:线程池(ThreadPool)
热门文章
- LR逻辑回归附代码
- [MIT6.006] 1. Algorithmic Thinking, Peak Finding 算法思维,峰值寻找
- python实现二叉树递归遍历与非递归遍历
- Spring源码之循环依赖
- linux中?*tee|\各类引号和-n-e\t\n
- rgw使用boto3生成可以访问的预签名url
- Freebsd10.2安装包升级pkg引起环境破坏的解决
- ceph写osd的配置文件/etc/ceph/ceph.conf
- Elementary OS安装及开发环境配置(一)
- apiAutoTest-更新2020/11/23