向PySide/PyQt的slot中传递额外参数

常见的一个问题就是如何向PySide/PyQt的slot中传递额外的参数。slot的机理就是将signal和slot建立关联,signal的参数能够传递到slot中,但额外的参数(用户自定义的)并不能直接传递进去。
但现实中传递用户自定义的参数还是很有意义的,这样一来用户就可以定义一个slot来处理多个signals,只是通过参数来区分即可。
如果实现呢?
一个简单的方法就是借助于lambda,下面是一个简单的例子:

self.configInqAct = QtGui.QAction("Inquiry", self)
self.configInqAct.setStatusTip("Inquiry all the config files")
self.configInqAct.triggered.connect(lambda:self.process_config("010010", ""))

def process_config(self, tran_code, data):
self.statusBar().showMessage("tran_code = %s, data = %s" %(tran_code, data))

当然也可通过重载来实现,具体可以参阅 http://qt-project.org/wiki/Signals_and_Slots_in_PySide

参考资料:
http://qt-project.org/wiki/Signals_and_Slots_in_PySide
http://eli.thegreenplace.net/2011/04/25/passing-extra-arguments-to-pyqt-slot/

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值