通过三个简单软件程序分析,找到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相关推荐

  1. java学习笔记15--多线程编程基础2

    本文地址:http://www.cnblogs.com/archimedes/p/java-study-note15.html,转载请注明源地址. 线程的生命周期 1.线程的生命周期 线程从产生到消亡 ...

  2. java学习笔记14--多线程编程基础1

    本文地址:http://www.cnblogs.com/archimedes/p/java-study-note14.html,转载请注明源地址. 多线程编程基础 多进程 一个独立程序的每一次运行称为 ...

  3. 1.2)深度学习笔记------神经网络的编程基础

    目录 1)Binary Classification 2)Logistic Regression 3)Logistic Regression Cost Function 4)Gradient Desc ...

  4. 1.Hadoop的安装和使用(华为云学习笔记,Spark编程基础,大数据)

    此笔记为第一篇,学校开放华为云平台,帮助我们学习有关大数据方面相关知识的学习笔记,因为是云平台,是已经搭建好linux环境了,使用的是Ubantu.精心整理,自学笔记,如有什么问题,请耐心指正 Had ...

  5. C 语言学习笔记(二):编程基础

    目录 一.冯诺依曼模型 二.程序语言发展历史 三.进制 3.1 二进制 3.2 八进制 3.3 十六进制 3.4 进制转换:二进制.八进制.十六进制.十进制之间的转换 3.4.1 将二进制.八进制.十 ...

  6. 7.读写HBase数据(华为云学习笔记,Spark编程基础,大数据)

    读写HBase数据 ① 在hbase-shell中使用命令创建HBase数据库: ② 使用Spark读写HBase数据库中的数据. 实验原理 -> HBase HBase是一个高可靠.高性能.面 ...

  7. 3.Spark的安装(华为云学习笔记,Spark编程基础,大数据)

    Spark的安装 ① 在Linux系统中安装Spark: ② 运行Spark自带实例. 实验原理 -> Spark Apache Spark 是专为大规模数据处理而设计的快速通用的计算引擎.Sp ...

  8. 2.Scala的安装和使用方法(华为云学习笔记,Spark编程基础,大数据)

    Scala的安装和使用方法 ① 在Linux系统中安装Scala: ② 使用Scala REPL: ③ 编译打包Scala程序代码. 实验原理-> Scala Scala于2004年1月公开发布 ...

  9. Python学习笔记·交互式图形编程

    Python学习笔记·交互式图形编程 注:在校计算机学生一名,菜鸟一枚,最近开始学习Python的基础知识希望有什么不对的地方各位大佬能够不令赐教! 课程是在中国大学MOOC上学的,有兴趣的同学可以自 ...

  10. J2EE学习笔记三:EJB基础概念和知识 收藏

    J2EE学习笔记三:EJB基础概念和知识 收藏 EJB正是J2EE的旗舰技术,因此俺直接跳到这一章来了,前面的几章都是讲Servlet和JSP以及JDBC的,俺都懂一些.那么EJB和通常我们所说的Ja ...

最新文章

  1. Activity的LaunchMode
  2. 一周内咸鱼疯传3.6W次,最终被所有大厂封杀
  3. Android软键盘遮挡的四种解决方案
  4. java vertx http_佛系学习Vert.x之创建你的HttpServer
  5. 到底是Java好还是Python好?
  6. delphi excel取批注所在的行列_35个Excel使用技巧
  7. 论文浅尝 | 基于微量资源的神经网络跨语言命名实体识别
  8. 【音频处理】如何“认识”一个滤波器?
  9. useReducer使用和原理
  10. Process Explorer 诊断和排错实例(下)
  11. 桌面整理之DeskGo
  12. fread fwrite之后文件指针位置
  13. 2021年新年元旦,新年开篇两首毛泽东诗词——沁园春:恰同学少年,风华正茂。书生意气,挥斥方遒……...
  14. 数据库DataBase
  15. 用计算机程序计算兴利库容,闸坝多目标泄流估算方法及系统与流程
  16. 当自己是个不懂中文,只懂英文的小孩
  17. 如何看待 12 月 26 日发布的华为云 WeLink 企业智能工作平台?能对标得过企业微信和钉钉吗?
  18. 滤波算法 | 无迹卡尔曼滤波(UKF)算法及其Python实现
  19. Android 通过MediaMetadataRetriever获取视频封面和时长
  20. 七月生活20031102

热门文章

  1. Jmeter之Synchronizing Timer(同步集合点)
  2. Linux常见命令(一)
  3. Vue.js视频教程
  4. C语言第12轮:指针
  5. 对adapter的封装优化
  6. MySQL5.5+winXP,字符集设置utf8,好像不能支持中文
  7. 基于DOS的ipc$最详攻略。
  8. java match parent_java.lang.IllegalStateException: The specified child already has a parent
  9. 《魔兽世界插件》教程---21点扑克游戏 Blackjack
  10. cocos2dx游戏开发简单入门视频教程 (cocos2d-x)-第2天