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

[01-04-02].第20节:PyQt5库初识及实现简易计算器

Qt5学习大纲


一、概念:

1.1.应用程序介绍:

  • 常见的应用程序:
    在这里插入图片描述
  • 应用程序打开后,会有一个 窗口,这个叫做主窗口
    在这里插入图片描述

1.2.需求说明:

在这里插入图片描述


二、PyQt5库介绍:

2.1.启动应用程序绘制窗口

a.导入PyQt5库

  • 1.在PyQt5库中具有很多的零部件,我们只有先导入PyQt5库后才可以从库中取出需要的零件,导入PyQt5库的方式是:from PyQt5.QT import *
    在这里插入图片描述

b.创建桌面应用程序对象:

  • 1.创建桌面应用程序对象使用QApplication([])类实现
  • 1.app = QApplication([])类实现 :其参数必须是一个空列表,我们把QApplication([])类创建的对象临时保存在变量app中
    在这里插入图片描述

c.绘制主窗口:

  • 绘制主窗口:window = QMainWindow(),主窗口创建完毕后默认是不显示的
  • 设置显示主窗口:window.show()

d.启动应用程序:

  • 启动方式是app.exec_()
    在这里插入图片描述

2.2.设置窗口的属性:

a.设置窗口的大小:

  • 代码:window.setFixedSize(400,500)
    在这里插入图片描述

b.设置窗口标题:

  • window.setWindowTitle("计算机")
    在这里插入图片描述

2.3.在窗口上添加画板widget:

  • 1.我们要实现在窗口中进行操作,就必须要先在窗口中添加widget画板,首先先创建widget对象
widget = QWidget()
  • 2.加入到窗口,居中显示
window.setCentralWidget(widget)
  • 3.给widget设置背景色:
window.setStyleSheet("background-color:yellow;")
  • 4.给widget中添加图片:
    在这里插入图片描述

2.4.在画板widget基础上添加控件:

a.添加文本框控件:

  • 文本框特点:可以输入一行数据,可以编辑和修改
    在这里插入图片描述
  • 2.ledit = QLineEdit(widget):实现添加文本框到画板widget中,设置文本框为只读:ledit.setReadOnly(True)
    在这里插入图片描述

b.添加按钮控件:

  • 1.按钮只有点击功能,不可以编辑
    在这里插入图片描述
  • 2.btn = QPushButton('1', widget):设置文本框创建按钮并设置按钮文字为1
    在这里插入图片描述

c.利用布局定位控件:

  • 1.可以看到截图中的按钮和文本框是挤在一起的,面板中原本是布局定位器的,所以我们在添加布局定位器后,就相当于在面板上又加了一层,添加了一层橫行数列的布局layout通过布局定位器来控制控件的布局
    在这里插入图片描述
  • 2.添加按钮控件过程:
    在这里插入图片描述
  • 3.添加文本框控件过程
    在这里插入图片描述

2.5.总结:

在这里插入图片描述


三、Qt5.开发简易计算器:

3.1.计算器需求:

在这里插入图片描述


3.2.知识回顾:

  • 复习二维列表的遍历:
    在这里插入图片描述

3.3.编码实现:

a.批量生成按钮:

  • 1.在遍历列表的时候,创建按钮,然后添加到画板中
    在这里插入图片描述

b.问题改善:

  • 2.上述代码实现后发现第1行的按钮和文本框重复占用第一行,所以我就需要按钮从第二行开始布局,对代码进行改善后,如下所示:
    在这里插入图片描述

相关文章:

  • 网络安全基础
  • 文字变央视级语音转换工具
  • OpenRAND可重复的随机数生成库
  • 元宇宙时代下的 Facebook:机遇与挑战
  • IDEA修改默认作者名称
  • Android Compose 约束布局(ConstraintLayout、Modifier.constrainAs)源码深度剖析(十二)
  • #include <hello.h> 与 #include “hello.h“的区别
  • YOLO学习笔记 | YOLO系列算法研究进展及应用综述
  • ant-vue-design 中a-select下拉选择框全局自定义滚动条样式
  • 探秘格式化:数据危机与恢复之道
  • Apache Seatunnel
  • vue-splice方法
  • 皮带运输防入侵主动安全防护系统方案
  • 计划变动的坐标系-基线
  • Apache Doris
  • gitee第三方登录获取openid | python+Django |已跑通
  • 为扣子智能体接入 DeepSeek
  • Linux系统之美:环境变量的概念以及基本操作
  • 1996-2023年各省公路里程数据(无缺失)
  • 简介PyCDE:Python CIRCT Design Entry
  • 孙卫东会见巴基斯坦驻华大使:支持巴印两国实现全面持久停火
  • 外交部:正确认识和对待历史是检验日本能否恪守和平发展承诺的重要标准
  • 一海南救护车在西藏无任务拉警笛开道,墨脱警方:已处罚教育
  • 牧原股份子公司与养殖户种猪买卖纠纷案一审胜诉
  • 老人将房产遗赠给外孙,三个女儿却认为遗嘱应无效,法院判了
  • 长沙查处疑似非法代孕:有人企图跳窗,有女子被麻醉躺手术台