pyQt5中QLineEdit的editingFinished问题

在pyQt5中使用QLineEdit控件时,editingFinished的槽函数貌似有一些问题。目前(2023年06月23日)没有解决,可能的原因有:lambda函数的规则。editingFinished本身的问题。

请各位提供解决思路,谢谢!

问题详述如下:

(1)editingFinished的槽函数只能写成这个样子:

nameLabelEd.editingFinished.connect(lambda:self.nameLabelEdittingFinished(gbxAA))

其特点是lambda函数后面没有参数,只能把参数放在括号里面。写成常见的传递参数方式时,报错:<lambda>() missing 1 required positional argument: '_'

(2)当有多个QLineEdit控件时,希望通过循环来写给这些控件写槽函数。这是需要在循环的时候不断修改参数gbxAA。但是,这个时候gbxAA不会修改,而是固定为最后一个。

(3)把editingFinished换成QLineEdit的另一个信号textChanged后,就没有这样的问题了。可以通过lambda把参数传进去。

        for key,value in paraAA['dtTick'].items():
            edLineAA = gbxAA['gP'].datSDict[key]#key = 'comResTime'
            edLineAA.textChanged.connect(lambda _,
                                         key0 = key,
                                         edLine = edLineAA: self.tChanged(key0,edLine))

今天(2023年06月24日)依然没有解决,不过发现一个类似的现象,在pyQt5中使用QCheckBox控件时也必须把lambda函数写成参数传递的形式,否则在循环的时候会刷到最后一个值。 

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值