七月 18

Pyside2教程:信号与槽基础

名词解释

  • signal:实例的属性。它可以在某种事件发生时被施放
  • event:用户操作,定时器结束,异步方法完成等
  • slot:实例的方法。它可以接收信号,并相应的做出反应。注意此处的方法不一定是Qt的槽方法

我们将信号与槽连接在一起来配置我们的应用对事件的相应

# 信号与槽的用法
object1.singalName.connect(object2.slotName)

信号可携带槽可以接收的数据

# 这里的entry1和entry2都是QLineEdit
self.entry1.textChanged.connect(self.entry2.setText)

信号可以connect到其他的信号

# returnPress信号当按回车键时施放,editingFinished信号当按回车键或失去焦点时施放
# 这里需要用lambda表达式的原始connect()方法接收的是函数,而不是函数的返回值
self.entry1.editingFinished.connect(lambda : print('编辑完成'))
self.entry2.returnPressed.connect(self.entry1.editingFinished)

如果一个槽有多重不同signature的实现方式,这个槽叫做overloaded slot。PyQt会自动判断应该使用哪个槽的实现

  • 如果槽需要的参数比信号发出的参数多,那么Qt会报错
  • 反之,如信号发出的参数比槽需要的参数多,则Qt不会报错,只是丢弃多于的参数


文章由安静原创,发表于www.ajnote.com。转载请注明出处

发表 2020年7月18日 自 anjing 类别 "Pyside2学习笔记

发表评论

电子邮件地址不会被公开。 必填项已用*标注