PyQt学习随笔:槽函数获取信号发送对象的方法

在PyQt中,相似控件发送的信号可以每个控件信号对应一个槽函数,也可以将相似控件的相同信号对应到一个槽函数,但如果槽函数相同,怎么区分信号是谁发送的呢?那就是在信号函数中使用sender()函数获取信号的发送对象。

案例:
设计一个计算器,要求点击相关按键完成计算任务。老猿将计算器的所有按键分为三类,一类是操作数据和符号(包括数字、点、运算符、括号),按下是在显示界面直接显示对应字;第二类是等号直接触发计算;最后一类是清除键,清除显示数据,复位计算器。

设计的界面及信号槽函数连接如下:
在这里插入图片描述
老猿将第一类按键全部映射到了主界面对象的槽函数CalObjPressed(),为了识别按键对应的字符,采用如下代码:

 def CalObjPressed(self):
        if  self.resultfinished:self.ClearInput() #如果上次计算出了结果则清屏
        pButton = self.sender() #取信号发射对象
        char = pButton.text() #取信号发射对象的显示字符
        self.CalculatorDisplay.insertPlainText(char) #将字符追加到显示部分显示
        self.expr += char  #将字符记录到计算表达式

使用如上代码,则按下第一类按键就在显示界面最后位置增加该字符。

运行效果图如下:
在这里插入图片描述

完整的代码请参考本文的CSDN资源: PyQt槽函数获取信号发送对象的演示代码:计算器Calculator.rar

老猿Python,跟老猿学Python!
博客地址:https://blog.csdn.net/LaoYuanPython

老猿Python博客文章目录:https://blog.csdn.net/LaoYuanPython/article/details/98245036

请大家多多支持,点赞、评论和加关注!谢谢!**

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

LaoYuanPython

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值