网站首页 全球最实用的IT互联网站!

人工智能P2P分享Wind搜索发布信息网站地图标签大全

当前位置:诺佳网 > 软件工程 > 后端开发 > Python >

pyqt图形化显示—2.信号与槽

时间:2026-01-06 17:32

人气:

作者:admin

标签:

导读:信号: event事件的工作方法是不断扫描是否发生事件然后做出相应,这种方式固然简单易懂,但如果我同一时间需要多项交互,那就不是能处理的了 所以pyside6采用信号(signal),可以以...

信号:

event事件的工作方法是不断扫描是否发生事件然后做出相应,这种方式固然简单易懂,但如果我同一时间需要多项交互,那就不是能处理的了

所以pyside6采用信号(signal),可以以解为一件事情发生会发出一个信号呼叫对应的处理器(slot)响应

基础控件的信号:

按键:

class MyWindow(QWidget):
    def __init__(self):
        super().__init__()
        btn = QPushButton('按钮名称', self) 

        btn.clicked.connect(self.btn_click)  # 按键点击时触发事件

    def btn_click(self):
        print('按钮被点击了')
btn.clicked.connect()   # 变量名称.信号名称.connect(对应的事件函数)

输入框:

获得输入的内容

account = self.lineEdit.text()

变量名 = self.对应输入框的objectName.text()

对应输入框的objectName可以在Qt Designer中找到

应用小项目:简易计算器

首先在Qt Designer绘制一个简易的计算器页面,保存ui文件

image

 转化为py文件,静态导入,多继承打开

image

 赋予按键数值和符号

    def com(self):
        self.pushButton_0.clicked.connect(lambda : self.add('0'))
        self.pushButton_1.clicked.connect(lambda : self.add('1'))
        self.pushButton_2.clicked.connect(lambda : self.add('2'))
        self.pushButton_3.clicked.connect(lambda : self.add('3'))
        self.pushButton_4.clicked.connect(lambda : self.add('4'))
        self.pushButton_5.clicked.connect(lambda : self.add('5'))
        self.pushButton_6.clicked.connect(lambda : self.add('6'))
        self.pushButton_7.clicked.connect(lambda : self.add('7'))
        self.pushButton_8.clicked.connect(lambda : self.add('8'))
        self.pushButton_9.clicked.connect(lambda : self.add('9'))
        self.pushButton_jia.clicked.connect(lambda : self.add('+'))
        self.pushButton_jian.clicked.connect(lambda : self.add('-'))
        self.pushButton_cheng.clicked.connect(lambda : self.add('*'))
        self.pushButton_chu.clicked.connect(lambda : self.add('/'))
        self.pushButton_dian.clicked.connect(lambda : self.add('.'))
        
        self.pushButton_C.clicked.connect(lambda : self.clear())
        self.pushButton_CE.clicked.connect(lambda : self.clearall())
        self.pushButton_ent.clicked.connect(lambda : self.jisuan())

添加  add函数

定义一个add函数,将参数num转换为字符串后拼接到self.result后面,更新在输出框内的显示
    def add(self, num):
        self.result += str(num)
        self.lineEdit.setText(self.result)

清除 clear函数

删除self.result最后一个字符,实现回退功能,记得更新显示

    def clear(self):
        self.result = self.result[:-1]
        self.lineEdit.setText(self.result)

全部删除 clearall函数

直接将self.result置为空,记得更新显示

    def clearall(self):
        self.result = ''
        self.lineEdit.setText(self.result)

计算 jisuan函数

使用eval函数计算表达式结果,由于存在回退功能,所以计算时不能更新self.result内容,所以直接更新显示就可以,添加error防止出现错误,提高鲁棒性

    def jisuan(self):
        try:
            self.lineEdit.setText(str(eval(self.result)))
        except:
            self.lineEdit.setText('error')

就酱,一个简易(划掉)简陋计算器就完成啦

温馨提示:以上内容整理于网络,仅供参考,如果对您有帮助,留下您的阅读感言吧!
相关阅读
本类排行
相关标签
本类推荐

CPU | 内存 | 硬盘 | 显卡 | 显示器 | 主板 | 电源 | 键鼠 | 网站地图

Copyright © 2025-2035 诺佳网 版权所有 备案号:赣ICP备2025066733号
本站资料均来源互联网收集整理,作品版权归作者所有,如果侵犯了您的版权,请跟我们联系。

关注微信