如果使用自定义信号,一定要记得信号是类变量,必须在类中定义,不能在实例方法中定义,否则后面发射信号和连接槽方法时都会报错。

案例:

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!

最新文章

  1. CI Weekly #5 | 微服务架构下的持续部署与交付
  2. CSS Reset样式重置
  3. yii2.0 的数据的 查 删
  4. 消息中间件Notify和MetaQ-阿里中间件
  5. How to: Fix a network printer suddenly showing as offline in Windows Vista, 7 or 8 « Robin's Blog
  6. php防止ddos,dns,集群攻击的实现代码
  7. IOS 逆向工程之砸壳
  8. Symfony2 Doctrine从现有Database生成Entity(转载自http://blog.it985.com/6809.html)
  9. BOOST::Signals2
  10. objective-C学习笔记(三)数据成员:属性与实例变量
  11. C# 《编写高质量代码改善建议》整理&笔记 --(五)成员设计
  12. javascript面向对象习题答案
  13. django系列3 :创建模型
  14. 将数据转换成树型层级的Json格式的String
  15. Centos7上安装java
  16. MyBatis学习笔记(二) Executor
  17. 剑指offer——python【第49题】把字符串转换成整数
  18. mod libs 课堂
  19. sqlserver 建表语句,获取建表语句的存储过程,包括排序规则,索引,字段说明,支持同时生成多个表
  20. 多线程二:线程池(ThreadPool)

热门文章

  1. LR逻辑回归附代码
  2. [MIT6.006] 1. Algorithmic Thinking, Peak Finding 算法思维,峰值寻找
  3. python实现二叉树递归遍历与非递归遍历
  4. Spring源码之循环依赖
  5. linux中?*tee|\各类引号和-n-e\t\n
  6. rgw使用boto3生成可以访问的预签名url
  7. Freebsd10.2安装包升级pkg引起环境破坏的解决
  8. ceph写osd的配置文件/etc/ceph/ceph.conf
  9. Elementary OS安装及开发环境配置(一)
  10. apiAutoTest-更新2020/11/23