当前位置: 首页 > 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.jsqmd.com/news/1100566/

相关文章:

  • 靠谱的装修公司哪家专业
  • 哑光亮调lr预设|高级哑光柔焦人像写真Lightroom下载lr调色风格
  • 给国产大模型 Agent 一副身体:我用魔珐星云搭建具身交互智能数字人
  • 广货行天下!超高清供需会现场体验VEGA H2
  • 从 Token Approval 到权限撤销:自托管钱包授权管理实践
  • 【华为OD机试真题 新系统】1034、数据包分段传输的最小最大延迟 | 机试真题+思路参考+代码解析(C++、Java、Py、C语言、JS)
  • 我把橘子洲头做成了AI客服:本地大模型落地的第一个真实场景
  • DCMTK:如何构建医疗影像系统的完整解决方案?
  • 【Claude Code】----Claude Code 23个高效技巧,效率拉满!!
  • 普通人靠挖漏洞也能高薪?揭秘白帽黑客 5K 到 13.2W 收入蜕变全过程,梳理合法变现全部渠道
  • 企业级AI改造实战:Agent、RAG与MCP组合拳破解复杂系统知识鸿沟
  • AI代理运行时解耦:会话即事件日志的工程实践
  • Codex客户端插件推荐:TOP 10 插件盘点,新手和开发者都值得收藏
  • 【稀缺干货】VMware KB 81992原始补丁分析:精简磁盘在vSAN 8.0U2中触发SCSI Reservation Timeout的底层链路图解
  • OPID:在线策略技能蒸馏,让智能体学习无需外部记忆
  • 低端手机评论发表速度------目前发表评论速度有点慢-----可以提高
  • VisualCppRedist AIO:一键修复Windows软件兼容性问题的终极解决方案
  • 日用五金注塑模具,性价比真的能打吗?
  • Minecraft服务器NPC插件终极指南:Citizens2完整入门与实践
  • HarmonyOS技术精讲-Image Kit:初识图片处理服务 - 核心概念与架构解析
  • Codex客户端必备插件TOP10推荐:系统自动化、Figma、GitHub、PPT一站式搞定(2026最新版)
  • FanControl深度解析:打造Windows系统智能散热控制方案
  • DCMTK深度解析:医疗影像开发的完整解决方案实战指南
  • pgsql备份恢复
  • 上海数字孪生开发者必看:2026年五大主流开发平台深度横评
  • 2026年太阳能路灯行业趋势洞察:一体化设计的厂商选择考量
  • AD复位原理图UniqueID的方法(解决原理图导入PCB,元器件位置错乱的方法)
  • 大模型推理底层依赖缺失,解决 ImportError: Could not import the ‘cuda‘ module
  • 三步实现浏览器直连桌面:WebRTC远程屏幕共享技术实战指南
  • 镜像构建的性能革命:Docker BuildKit 高级特性与生产级实践