PyQt5学习笔记16-20
PyQt5的第十六课 - PyQt5载入图片QPixmap应用
知识回顾
- 进度条qprogressbar
- 学会使用时钟控件QBasicTimer
- 学会重写事件timerEvent
案例:图片的载入与移除
- 加入需要能够载入图片
- 增加移除图片按钮和添加图片按钮
- 当点击相应按钮后会有相应的功能
最终图片的显示载体QLabel
功能:
显示文字
显示图片,载入QPixmap
默认情况下,label显示区域,是根据图片的大小进行显示的
如果设置label大小的话,只会显示图片的部分裁剪区域
使用方法:
lbl.setPixmap(图片实例化对象)
lbl.setPixmap(QPixmap("./img/th.jpg"))
如和让图片自适应qlabel标签的区域呢?
QPixmap类
所在类库QtGUI
导入
from PyQt5.QtGui import Qpixmap实例化图片对象:
QPixmap(图片路径) 返回一个实例化图片对象
总结强调
- 掌握QPixmap载入图片对象与移除
- 掌握通过QLabel来显示图片与自适应大小
PyQt5的第十七课 - PyQt5下拉列表控件QComboBox
说白了就像以前那个js的地址联动似的
知识回顾
- 掌握QPixmap图片对象
- 掌握Qlabel控件装载图和调整图片
下拉列表 combobox
- 主要用于选择,比如省市联动选择
- 必须要载入Qcombobox类
- 实例化类为一个对象,对这个对象进行配置,实则就是对下拉列表的配置
1 | combox_1 = QComboBox(myframe1) |
- 我们通过addItem来王combobox中装入项目
用到clear方法将所有项目进行清空
Combobox点击事件
- 理解为激活actived信号.
- 信号有两种传递方式
- 第一种传递传递字符串,这个实则传递的是选择的文本
combox_1.activated[str].connect(self.myActived)
- 第二种:传递整型变量,这个传递的是选择的索引.索引默认从0开始
- 第一项的索引是0,第二项的索引是1,依次类推
- combo1.activated[int].connect(自定义槽方法)
案例省市联动选择
- 需要两个下拉列表
- 点击第一个下拉列表后,会联动第二个列表中的内容
扩展内容
下拉列表框也可以进行输入,但是需要对方法进行配置
配置setEditable为True:
combo1.setEditable(True)
总结强调
- 掌握qcombobox的载入布局与项目加载
- 掌握下拉列表的编辑和对应事件
- 掌握联动的思想
PyQt5的第十八课 - PyQt5日历控件QCalendarWidget
知识回顾
- 掌握了QCombobox下拉框,载入,配置(可编辑,不可编辑)
- 掌握联动的思想(省与市的联动),主要
- 用到actived信号
案例描述:日历控件的使用
- 制造一个垂直布局(盒子模型)
- 载入一个日历控件Qcalendarwidget和一个qlabel控件
- 要求在点击日历控件的日期的时候,能够将获取到的日期显示到我们的label上
步骤
- 从库文件PyQt5.QtWidgets中导入日历控件
- 对日历控件进行实例化
cal = QCalendarWidget()
- 这里实例化的时候没有载入父容器,我们需要在后期将其载入父容器
盒子模型
- 盒子模型,垂直布局
1
2vlo = QVBoxLayout(self)
vlo.addWidget(cal)
字体设置
- 导入字体类
- 对字体进行实例化,以及将实例化对象载入使用
lbl.setFont(QFont("华文行楷",20))
日期类型的载入
- 从pyqt5的核心库中载入日期类Qdate
from PyQt5.QtCore import QDate
- 默认的有实例的日期显示格式
PyQt5.QtCore.QDate(2019, 11, 15)
对日期进行格式化的技巧
问题是在我们的槽方法中无法对日期进行代码提示,关键的技巧就是对参数重新格式化为QDate类型就可以了
格式化日期使用toString方法来实现.
实现的时候,我们有两种方法:
方法一:使用y表示年的一位,M表示月,d表示日
self.lbl.setText(mydate.toString("yyyy-MM-dd"))
方法二:使用系统中的已经定义好的方式
这种方式,已经定义好的枚举类
self.lbl.setText(mydate.toString(1))
或者self.lbl.setText(mydate.toString(Qt.ISODate))
总结强调
- 掌握日历控件QCalendarWidget的载入与配置.
- 掌握日历控件的信号控制
- 掌握日期格式化的几种方法.
PyQt5的第十久课 - PyQt5菜单menu应用,新建多窗口
知识回顾
- 掌握日历控件QCalendarWidget
案例:菜单
- 新建第一窗体
- 一级菜单的配置
- 二级菜单的配置
- 利用菜单功能实现界面跳转实现温馨提示
开发思路
- 导入类QMainWindow
- 使用Qmenu菜单类,这个菜单我们可以从窗体本身的方法进行获取
- 利用好Qmeun的功能,来实现多级菜单addAtion这是一个直接产生点击事件的行为
也可以用addMenu功能来增加子菜单 - 每次都要弹出新窗体,这个新窗体,我们要制作成全局的窗体
- 使用QMessagebox 来实现一个简单的帮助
一个空的模板
1 | import sys |
载入菜单的简单功能
1 | my_menu = self.menuBar() |
子菜单的书写
- 这里要注意,直接将子菜单写在父菜单的下方
- 这样的好处,更多的也可以帮助我们进行二次理解
- 子菜单的添加,通过addMenu功能
子菜单的核心代码
1 | my_menu = self.menuBar() |
对于新窗体的建议
- 建议一个窗体就写一个类.那么每一次新的窗体出现的时候,就实例化这个类就OK了
- 注意:想要让这个窗体被一直死循环监听,必须要把这个窗体作为程序的全局变量
- 否则就会出现闪退现象
新建一个窗体的写法
- 直接写一个自定义的类窗体
- 将这个类窗体先不要show
- 将这个类窗体在main中进行实例化,作为全局变量
- 在槽的行为中,将这个窗体show出来
新建多个窗体
- 这里是思想要实例化多个窗体,且这些窗体都是全局变量
- 这里要考虑用列表作为全局变量
- 此时,我们需要在自定义的类中书写show的代码
总结强调
- 掌握菜单栏的书写
- 掌握菜单按钮的单击行为跳转功能
- 掌握子菜单的建立,
- 掌握多窗体的书写
All articles in this blog are licensed under CC BY-NC-SA 4.0 unless stating additionally.
Comment