PySide信号槽

本文详细介绍了如何在PyQt中定义和使用信号(signal)与槽(slot),包括无参数信号、带参数信号及其重载方式,并展示了如何将信号连接到槽函数或普通Python函数。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

这样定义一个没有参数的信号

     speak = QtCore.Signal()

这样定义一个带参数的信号

    speakNumber = QtCore.Signal(int)

信号的重载

    speak = QtCore.Signal((int,someType), (str,otherType))

重载的参数作为tuple或者list传递给Signal(),调用时

  1. someone. speak. emit ( 10 )
  2. someone. speak [str ]. emit ( "Hello everybody!" )

这样连接

除了可以连接slot外,还可以直接连接python的函数

  1. someone. speak. connect (saySomething )
  2. someone. speak [str ]. connect (saySomething )

注意:信号是运行时对象,所以必须用一个对象来激活。

如:someObjec.signal.emit(int)

而:class.signal.emit()会发生错误


这样定义槽

  1. @ QtCore. Slot (str )
  2. def saySomeWords (words ) :
  3.     print words
也就是在函数申明的前面加上decorator,带上参数。下面是函数的重载版本

  1. @ QtCore. Slot ( int )
  2. @ QtCore. Slot (str )
  3. def saySomething (stuff ) :
  4.     print stuff
也就是添加两个decorator,分别加上不同的参数。



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值