PyQt5学习笔记2-GUI编程基础-2
通过三个简单软件程序分析,找到PyQt GUI编程的感觉!
(源自《Rapid GUI Programming with Python and Qt》,本文将示例由Qt4改成Qt5版本)
软件2:计算器
该示例是一个对话框应用程序,即没有菜单栏、工具条、状态栏。 软件功能: 1.用户输入数学表达式,按回车键后,表达式及结果就会显示出来。 2.如果输入的表达式无效,软件会显示错误信息。 软件运行效果图
1 ''' 2 一个计算器 3 该示例是一个对话框应用程序,即没有菜单栏、工具条、状态栏。 4 软件功能: 5 1.用户输入数学表达式,按回车键后,表达式及结果就会显示出来。 6 2.如果输入的表达式无效,软件会显示错误信息。 7 ''' 8 9 import sys 10 from math import * # 输入的表达式可使用math模块中所有数学函数,如sin、cos 11 from PyQt5.QtWidgets import * # 使用此模块中的QWidget,QTextBrowser、QLineEdit 12 13 # 通过QDialog子类化的方法创建一个顶级窗口 14 # PyQt中的所有控件都是继承自QWidget, 如:QDialog,QLineEdit 15 class Form(QDialog): 16 17 def __init__(self): 18 super().__init__() # 初始化窗口 19 20 # 创建两个窗口控件 21 self.browser = QTextBrowser() 22 self.lineedit = QLineEdit("Type an expression and press Enter") 23 self.lineedit.selectAll() 24 25 # 创建一个垂直布局管理器QVBoxLayout 26 # PyQt提供了三种布局管理器:垂直布局/水平布局/网格布局,它们可以彼此嵌套。 27 # 使用了布局管理器后,各种控件会随着窗口的大小改变自动调整。 28 layout = QVBoxLayout() 29 layout.addWidget(self.browser) 30 layout.addWidget(self.lineedit) 31 self.setLayout(layout) 32 33 self.lineedit.setFocus() 34 35 # 信号(returnPressed)连接到槽(updateUi) 36 # 当用户在lineedit上按下回车键时,retrunPressed信号就会发射出来, 37 # 因有connect , 此时会调用updateUi(). 38 self.lineedit.returnPressed.connect(self.updateUi) 39 40 self.setWindowTitle("Calculate") 41 42 def updateUi(self): 43 try: 44 text = self.lineedit.text() 45 46 # 使用eval函数计算表达式的值 47 self.browser.append("{} = <b>{}</b>".format(text,eval(text))) 48 except: 49 self.browser.append("<font color=red>{} is invalid!</font>".format(text)) 50 51 app = QApplication(sys.argv) 52 form = Form() # 创建Form实例 53 form.show() # 调用了show()后,事件循环开始,显示出窗口 54 app.exec_()
转载于:https://www.cnblogs.com/atsats/p/8035351.html
PyQt5学习笔记2-GUI编程基础-2相关推荐
- java学习笔记15--多线程编程基础2
本文地址:http://www.cnblogs.com/archimedes/p/java-study-note15.html,转载请注明源地址. 线程的生命周期 1.线程的生命周期 线程从产生到消亡 ...
- java学习笔记14--多线程编程基础1
本文地址:http://www.cnblogs.com/archimedes/p/java-study-note14.html,转载请注明源地址. 多线程编程基础 多进程 一个独立程序的每一次运行称为 ...
- 1.2)深度学习笔记------神经网络的编程基础
目录 1)Binary Classification 2)Logistic Regression 3)Logistic Regression Cost Function 4)Gradient Desc ...
- 1.Hadoop的安装和使用(华为云学习笔记,Spark编程基础,大数据)
此笔记为第一篇,学校开放华为云平台,帮助我们学习有关大数据方面相关知识的学习笔记,因为是云平台,是已经搭建好linux环境了,使用的是Ubantu.精心整理,自学笔记,如有什么问题,请耐心指正 Had ...
- C 语言学习笔记(二):编程基础
目录 一.冯诺依曼模型 二.程序语言发展历史 三.进制 3.1 二进制 3.2 八进制 3.3 十六进制 3.4 进制转换:二进制.八进制.十六进制.十进制之间的转换 3.4.1 将二进制.八进制.十 ...
- 7.读写HBase数据(华为云学习笔记,Spark编程基础,大数据)
读写HBase数据 ① 在hbase-shell中使用命令创建HBase数据库: ② 使用Spark读写HBase数据库中的数据. 实验原理 -> HBase HBase是一个高可靠.高性能.面 ...
- 3.Spark的安装(华为云学习笔记,Spark编程基础,大数据)
Spark的安装 ① 在Linux系统中安装Spark: ② 运行Spark自带实例. 实验原理 -> Spark Apache Spark 是专为大规模数据处理而设计的快速通用的计算引擎.Sp ...
- 2.Scala的安装和使用方法(华为云学习笔记,Spark编程基础,大数据)
Scala的安装和使用方法 ① 在Linux系统中安装Scala: ② 使用Scala REPL: ③ 编译打包Scala程序代码. 实验原理-> Scala Scala于2004年1月公开发布 ...
- Python学习笔记·交互式图形编程
Python学习笔记·交互式图形编程 注:在校计算机学生一名,菜鸟一枚,最近开始学习Python的基础知识希望有什么不对的地方各位大佬能够不令赐教! 课程是在中国大学MOOC上学的,有兴趣的同学可以自 ...
- J2EE学习笔记三:EJB基础概念和知识 收藏
J2EE学习笔记三:EJB基础概念和知识 收藏 EJB正是J2EE的旗舰技术,因此俺直接跳到这一章来了,前面的几章都是讲Servlet和JSP以及JDBC的,俺都懂一些.那么EJB和通常我们所说的Ja ...
最新文章
- Activity的LaunchMode
- 一周内咸鱼疯传3.6W次,最终被所有大厂封杀
- Android软键盘遮挡的四种解决方案
- java vertx http_佛系学习Vert.x之创建你的HttpServer
- 到底是Java好还是Python好?
- delphi excel取批注所在的行列_35个Excel使用技巧
- 论文浅尝 | 基于微量资源的神经网络跨语言命名实体识别
- 【音频处理】如何“认识”一个滤波器?
- useReducer使用和原理
- Process Explorer 诊断和排错实例(下)
- 桌面整理之DeskGo
- fread fwrite之后文件指针位置
- 2021年新年元旦,新年开篇两首毛泽东诗词——沁园春:恰同学少年,风华正茂。书生意气,挥斥方遒……...
- 数据库DataBase
- 用计算机程序计算兴利库容,闸坝多目标泄流估算方法及系统与流程
- 当自己是个不懂中文,只懂英文的小孩
- 如何看待 12 月 26 日发布的华为云 WeLink 企业智能工作平台?能对标得过企业微信和钉钉吗?
- 滤波算法 | 无迹卡尔曼滤波(UKF)算法及其Python实现
- Android 通过MediaMetadataRetriever获取视频封面和时长
- 七月生活20031102
热门文章
- Jmeter之Synchronizing Timer(同步集合点)
- Linux常见命令(一)
- Vue.js视频教程
- C语言第12轮:指针
- 对adapter的封装优化
- MySQL5.5+winXP,字符集设置utf8,好像不能支持中文
- 基于DOS的ipc$最详攻略。
- java match parent_java.lang.IllegalStateException: The specified child already has a parent
- 《魔兽世界插件》教程---21点扑克游戏 Blackjack
- cocos2dx游戏开发简单入门视频教程 (cocos2d-x)-第2天