当前位置: 首页 > news >正文

基础控件的信号:

按键:

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文件

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

赋予按键数值和符号

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')
http://www.cnnetsun.cn/news/3079012.html

相关文章:

  • Three.js 人物模型动画案例教程
  • Octo 正式开源:首个开源可信的人与agent协作平台
  • 告别高昂外包费!苏州制造企业如何用零代码平台3天自建数字孪生工厂?
  • 社交钱包开发的技术逻辑与人文转向
  • 翅片管散热器的设计与应用解析
  • 告别手动绑定!用WxValidate在微信小程序+vant weapp里优雅搞定表单校验
  • OWASP Top 10 A02加密机制失效:十大风险场景与纵深防御实战
  • 【无标题】请容许我吹一下牛
  • AI驱动测试开发:Claude Code在单元、API与UI自动化测试中的实战应用
  • AI视觉防错行为判断实时监督家电产线作业,杜绝人为失误隐患
  • 前期准备:
  • wechatapi优化:基于AC自动机的海量关键词毫秒级拦截
  • 后端工程师需要掌握的DevOps实践指南
  • 基于深度学习的骨折检测系统(YOLOv8+YOLO数据集+UI界面+Python项目+模型)
  • 计算机毕业设计之基于少儿编程课程平台管理系统的设计与实现
  • 隧道施工数字化利器|LED信息显示系统,打通安全管理可视化闭环@信悦恒科技
  • 【AWS】基于Docker搭建监控系统基础(二)
  • Spring Boot Actuator安全防护:Nginx与APISIX字符绕过漏洞深度解析与配置实践
  • Python逆向网易云音乐评论加密:AES+RSA混合加密实战解析
  • TEA系列加密算法实战:从C到Python的跨平台轻量级实现
  • 影刀RPA新手教程:电商创业者完全指南——从零到一搭建第一个自动化选品采价流程
  • GLM5.2本地部署实战:从环境搭建到性能优化全解析
  • 美团王兴的白发
  • 中兴F50怎么安装UFI-TOOLS并远程访问?完整图文教程
  • Python爬虫经典案例003:正则表达式精通指南——文本数据的精准提取技巧
  • 2026顶配单!好用的降AIGC网站全测评,效率直接拉满!
  • FileLock | 文件防删除保护工具
  • 一线观察:长期体验长春汽车贴膜后发现的技术细节
  • 市场正规的画册设计公司口碑
  • 【 Godot 4 学习笔记】Blender到Godot4