28天学会PyQt5
文章平均质量分 58
PyQt5是基于图形程序框架Qt5的Python语言实现,由一组Python模块构成。允许Python程序员很方便地创建完整的、功能健全的用户界面,是Digia的一套Qt5与python绑定的应用框架。它是一个跨平台的开发库,可以运行在大多数操作系统中,包含Windows、macOS等...
老陈说编程
单片机和App,但愿你也喜欢.
展开
-
第28天 | 28天学会PyQt5,高级控件之QTreeWidget
树形结构是通过QTreeWidget和QTreeWidgetItem类实现的,其中QTreeWidgetItem类实现了节点的添加。QTreeWidget是一个层次的嵌套结构。一个树状结构的外层和内层有相似的结构,常用于表示有一个上层多个下层的数据结构。在结构中,树根结点没有前驱结点,其余每个结点有且只有一个前驱结点。叶子结点没有后续结点,其余每个结点的后续节点数可以是一个也可以是多个,常用的方法如下表所示: 方法 描述 setColumnWidth(原创 2021-10-04 17:15:00 · 1242 阅读 · 0 评论 -
第27天 | 28天学会PyQt5,高级控件之QListWidget
列表框架还有一个QListWidget,它是QListView的子类,与QListView不同的是,它已经建立了一个数据储存模型QListWidgetItem,直接调用addItem()函数就可以添加条目(Item),常用的事件类型有: 事件类型 描述 currentItemChanged 列表中的条目发生改变时,触发此事件; itemClicked 点击列表中的条目时,触发此事件。原创 2021-10-04 12:00:00 · 1556 阅读 · 0 评论 -
第26天 | 28天学会PyQt5,高级控件之QListView
列表组件QListView是从QAbstractItemView 派生的类,实现了QAbstractItemView类定义的接口,是Model/View架构中的视图类之一,是模型/视图框架的一部分,提供基于模型的的列表模式或图标模式视图。它将存储在模型中的项显示为简单的没有父子层次的列表或图标集合,视图不显示水平或垂直标题,常用的方法如下表所示: 方法 描述 setModel() 用来设置View所关联的Model,可以使用Pytho原创 2021-10-03 17:15:00 · 1460 阅读 · 0 评论 -
第25天 | 28天学会PyQt5,高级控件之QTableWidget
表格控件,还有一个QTableWidget,它继承自QTableView。QTableWidget和QTableView的主要区别是QTableView可以使用自定义的数据模型来显示内容,而QTableWidget只能使用标准的数据模型,并且其单元格数据是通过QTableWidgetItem对象来实现的。通常情况下,使用QTableWidget就能够满足我们的大多数要求。它常用的方法,除了用QTableView的方法外,还可用下表所示的方法: 方法 描述原创 2021-10-03 12:00:00 · 1326 阅读 · 0 评论 -
第24天 | 28天学会PyQt5,高级控件之QTableView
高级组件不是说这个组件有多”高级”的意思,而是表示功能强大的意思。如要实现一个功能完整的表格功能,可能需要花上好几天,编写好多代码才能实现,而直接调用wx.Grid组件,三两下就搞定了,所以说这个组件很高级。PyQt5常用的高级组件有表格视图控件QTableView和QTableWidget、列表视图QListView和QListWidget,树状结构QTreeWidget和标签视图QTabWidget。表格视图控件QTableView需要和数据模型配套使用。表格的数据模型,需要填上每一行每一列原创 2021-10-02 17:15:00 · 4007 阅读 · 0 评论 -
第23天 | 28天学会PyQt5,多行文本框
多行文本输入框QTextEdit可以显示多行文本内容,当文本内容超出控件显示范围时,可以显示水平个垂直滚动条,还可以用来显示HTML文档。多行文本框常用事件类型如下表所示。 方法 描述 setPlainText() 设置多行文本框的文本内容 toPlainText() 返回多行文本框的文本内容 setHtml() 设置多行文本框的文本内容为HTML原创 2021-10-02 12:00:00 · 3568 阅读 · 0 评论 -
第22天 | 28天学会PyQt5,单行文本框
文本框QLineEdit是表单域中最基本的元素,基于文本框的应用有很多,它提供了编辑文本的功能,自带了撤销、重做、剪切、粘贴、拖拽等功能。通过设置,可以置为密码输入框。QLineEdit常用的事件类型如下表所示。 事件类型 描述 selectionChanged 只要选择改变了,就会触发事件 textChanged 修改文本内容时,触发事件 editingFinished原创 2021-10-01 17:15:00 · 996 阅读 · 0 评论 -
第21天 | 28天学会PyQt5,步进器
步进控件QSpinBox,也叫微调控制器,允许用户选择一个整数值。通过单击向上向下或者按键盘上的上下键来增加减少当前显示的值,当然,也运行用户直接用键盘输入值。在默认情况下,它的取值范围是(0-99),每次改变的步长是1。步进控件QSpinBox的常用事件类型为vlaueChanged,在值发生改变时触发事件,它常用的方法如下表所示。 方法 描述 setMinimum() 设置步进器的下界 setMaximum原创 2021-10-01 12:00:00 · 383 阅读 · 0 评论 -
第20天 | 28天学会PyQt5,滑块控
滑块QSlider控件提供一个垂直或者水平的滑动条,滑动条是一个用于控制有界值典型的控件,它允许用户沿水平或者垂直方向在某一范围内移动滑块,并将滑块所在的位置转换为一个合法范围内的整数值,有时候这中方式比输入数字更加自然。QSlider控件的常用事件类型有如下几种。 事件类型 描述 vlaueChanged 滑块的值发生改变时触发事件,此类型是最常用的 sliderPressed 按下滑块原创 2021-09-30 12:00:00 · 761 阅读 · 0 评论 -
第19天 | 28天学会PyQt5,列表选择,你选西施还是杨玉环?
列表框QComboBox是一个集按钮和下拉选项于一体的控件,是提供给用户选择的一种机制。选项被放置在一个下拉列表中,绑定的事件,在用户选择之后触发。列表框比单选按钮占据较少的空间,当选项的数目相对少的时候,列表框是一个好的选择。QComboBox控件常用的事件类型如下表所示: 事件类型 描述 Activated 用户选中一个下拉选项时触发事件 currentIndexChanged 下拉选原创 2021-09-29 12:00:00 · 644 阅读 · 0 评论 -
第18天 | 28天学会PyQt5,单选按钮
单选按钮QRadioButton是一种允许用户从几个选项中选择其一的窗口组件。与复选框不同,单选按钮是显式地成组配置,并且只能选择其中一个选项。当选择了新的选项时,上次的选择就还原了。多个QRadioButton是一个按钮组合,如果多个独占的按钮组合,需要放在QButtonGroup中。单选按钮QRadioButton的常用方法如下表所示: 方法 描述 setCheckanle() 设置按钮是否已经被选中,可以改变单选按钮的选中状态,原创 2021-09-28 11:33:52 · 1376 阅读 · 0 评论 -
第17天 | 28天学会PyQt5,复选框
复选框QCheckBox是一个带有文本标签的开关按钮,一样继承自QAbstracButton类。复选框通常成组的方式显示,但是每个复选框的开关状态是相互独立的。当你有一个或多个需要明确的开关状态的选项时,可以使用复选框。复选框常用的事件类型toggled,在标记状态发生改变时触发事件。复选框QCheckBox的常用方法如下表所示: 方法 描述 setChecked() 调整复选框的状态,设置为True表示选中,False表示取消选原创 2021-09-27 12:01:52 · 1111 阅读 · 0 评论 -
第16天 | 28天学会PyQt5,按钮
widget的动态组件有10多个,有按钮QPushButton、单选按钮QRadioButton和列表框QComboBox等等。如果只是一味地念”名词”,实在太无趣了,能用代码+注释的方式讲解组件,那才有点意思。按钮QPushButton继承自QAbstractButton类,其形状是长方形,文本标题或图标可以显示在长方形上。它也是一种命令按钮,可以单击该按钮执行一些命令或者响应一些事件。QAbstractButton类为抽象类,不能实例化,必须由其他的按钮类(如QPushButton)继承之后,实原创 2021-09-26 17:12:38 · 1215 阅读 · 0 评论 -
第15天 | 28天学会PyQt5,进度条
进度条控件QProgressBar用于向用户提供操作进度的指示,用户可以从进度条看出程序是否正在运行。在PyQt5工具包中,QProgressBar提供了一个水平或垂直进度条。可以为进度条设置取值范围,最小值默认为0,最大值默认为99。它的常用方法如下: 方法 描述 setRange() 设置进度条的取值范围(最小值和最大值); setMinimum() 调整进度条的最小值;原创 2021-09-26 12:20:17 · 1215 阅读 · 1 评论 -
第14天 | 28天学会PyQt5,静态组件之图片
图片控件QPixmap可以作为一个QPainterDevice对象,可以加载到一个控件中,通常是标签或者按钮,用于在标签或按钮上显示图像,支持的文件类型有BMP、GIF和JPG等。它的常用方法如下: 方法 描述 copy() 从QRect对象复制到QPixmap对象 fromImage() 将QImage对象转换为QPixmap对象 grabWidget()原创 2021-09-25 19:00:10 · 863 阅读 · 0 评论 -
第13天 | 28天学会PyQt5,静态组件之标签
组件(widget)是应用程序最基本的单元,常见的组件有标签、文本、按钮、选择框、滑动器等。PyQt5的大多数组件继承于QWidget类,所以大多数组件具有选择单击clicked事件等类型和绑定事件的功能。程序员们常将和用户交互的组件称作动态组件,而将主要起到显示作用的组件称为静态组件,静态组件尽管也可以用connect()方法绑定事件,但不会起到作用。静态组件没有很多个,有用于显示文本的QLabel,有用于展示图片的QPixmap,还有进度条QProgressBar。当我们在处理一个耗时较长的任务原创 2021-09-25 12:06:21 · 762 阅读 · 1 评论 -
第12天 | 28天学会PyQt5,表单布局
表单布局QFormLayout,就是实现表单方式的布局,表单是提示用户进行交互的一种模式,主要有两列组成,第一列用于显示信息,给用户提示,一般叫做标签域,第二列需要用户进行选择或输入,一般叫做输入域。QFormLayout常用方法如下: 方法 描述 addRow(self, QWidget, QWidget) 用于添加包含标签和输入字段的行; addRow(self, str, QWidget)原创 2021-09-24 13:29:47 · 978 阅读 · 0 评论 -
第11天 | 28天学会PyQt5,网格布局
网格布局QGridLayout即由行列组成的二维表格的布局方式。在QGridLayout中,可以定义表格的行列数目,以及单元格之间的横竖间距,还可以通过对所添加的控件的行数与列数的跨越,来实现一个部件占据多个单元格。QGridLayout对象的setSpacing(self, spacing: int)方法,可设置控件在水平和垂直方向的间隔,spacing为整数, 默认值为10。addWidget(QWidget widget,int row,int col,int alignment=0)方法用于原创 2021-09-23 12:07:14 · 1444 阅读 · 0 评论 -
第10天 | 28天学会PyQt5,箱子布局
菜单栏和工具栏,在大多数编程语言中,都会提供对应的布局,而工作区域的,需要用布局管理器。当然,在PyQt5中,大多数组件可用x、y轴坐标进行定位摆放,只是那样要费时费力,还会遇到调整窗口大小时,组件的尺寸和位置不会随之改变的问题,会遇到不同系统上,应用界面不一致的问题。为此,PyQt5提供了布局管理器QLayout,QLayout本身不是一个容器或一个窗口部件,它是一个屏幕布局的算法。真正实现布局的是QLayout的子类,有按行或列布局的箱子布局QHBoxLayout和QVBoxLayout,有按网格布原创 2021-09-22 13:17:05 · 453 阅读 · 0 评论 -
第9天 | 28天学会PyQt5,数据传递事件
在开发桌面应用程序时,经常需要在两个界面之间做数据的传递,在PyQt5中,你可以用pyqtSignal进行实现。通过pyqtSignal可以声明不带参数和带参数的实例对象,带参数的实例对象可以整型、字符型、列表和字典等数据类型。pyqtSignal对象用connect()方法绑定多个处理函数,在emit()方法发送数据时,绑定的函数都会收到。了解过设计模式的朋友应该知道,这是观察者模式的应用。记得将connect()方法放在窗口显示方法show()之前,否则不起作用。让打开的窗口处于模态,需要在sh原创 2021-09-21 17:52:22 · 989 阅读 · 0 评论 -
第8天 | 28天学会PyQt5,窗口事件
在QWidget和QMainWindow窗口中,提供了鼠标和键盘的处理函数,你需要用到时,进行重载即可。事件重载方法里的e代表了事件对象,mouseMoveEvent(self,e)里e表示QMouseEvent的对象,用对象的x()和y()方法,可以得到鼠标的x和y坐标点。更多可重载的事件方法,可以查看QWidget的源代码。除了之前讲过的重载contextMenuEvent(self, e)方法,实现上下文菜单外,常用的方法还有如下几个: 方法 描述原创 2021-09-21 09:08:04 · 979 阅读 · 0 评论 -
第7天 | 28天学会PyQt5,控件事件
事件,就是程序在运行中发生的事儿,桌面应用软件都是事件驱动的。事件可以是用户的操作,如鼠标点击或按键按下,也可以由系统产生,如定时关机。事件会触发相应的行为,即事件函数。在事件模型中,有三个角色,分别是事件源、事件和事件目标。事件源就是发生了状态改变的对象,事件是这个对象状态的改变撞他改变的内容,事件目标是事件想作用的目标。事件源绑定事件处理函数,然后作用于事件目标身上。事件源是状态发生变化的对象。它会生成事件。事件(对象)封装了事件源中状态的变动。事件接收者是要通知的对象。事件源对象将事件处理的工原创 2021-09-20 20:11:33 · 1322 阅读 · 0 评论 -
第6天 | 28天学会PyQt5,文本输入对话框
对话框是一种特殊的视窗, 用来在用户界面中向用户显示信息,或者在需要的时候获得用户的输入响应。显示信息已经说过,接下来说一下文本输入对话框QInputDialog。QInputDialog控件是一个标准对话框,由一个文本框和两个按钮(ok和cancel)组成,当用户单击ok或按下键盘enter键后,在父窗口可以收集通过QInputDialog控件输入的信息,QInputDialog控件是QDialog标准对话框的一部分。在QInpuTDialog控件中可以输入数字(整型或浮点型),字符串或列表中的选原创 2021-09-20 12:22:14 · 2116 阅读 · 1 评论 -
第5天 | 28天学会PyQt5,对话框
QDialog是对话框窗口的基类。对话框主要用来执行短期任务,或者与用户进行互动。对话框里没有菜单栏、工具栏和状态栏等。在开发中,常用消息对话框QMessageBox给用户展示消息,消息框常常包括标题、内容和图标。提示框、问答框、警告框和错误框,分别用QMessageBox对象的information()、question()、warning()和critical()方法显示,它们最大的不同点,在于提示图标。程序清单: dialog.pyimport sysfrom PyQt5.QtWidget原创 2021-09-19 19:24:05 · 524 阅读 · 0 评论 -
第4天 | 28天学会PyQt5,主窗口
QMainWindow继承自QWidget类,QWidget类中的大部分成员函数,QMainWindow都可以使用。QMainWindow窗口可以包含菜单栏、工具栏、状态栏、标题栏等,常用于主窗口,它是顶层窗口,有自己的布局管理器,不能使用setLayout对其进行设置。菜单栏创建,用self.menuBar()获取菜单栏(QMenuBar)对象,通过addMenu()方法添加菜单项并返回QMenu或QAction对象,QMenu的addMenu()方法用于添加子菜单,addSeparator()方法添原创 2021-09-19 13:23:01 · 787 阅读 · 0 评论 -
第3天 | 28天学会PyQt5,基本窗口
在PyQt5中,窗口类型有QWidget、QMainWindow和QDialog三类,它们都是用来创建窗口的,可以直接实例化使用,也可以继承后使用。如果确定是主窗口,就使用QMainWindow类,如果是对话框,就使用QDialog类,如果不确定,否则使用QWidget类。基本窗口QWidget类是UI对象的基类,窗口和控件(如按钮)都直接或间接继承自QWidget类。窗口是指程序的整体界面,可以包含标题栏、菜单栏、工具栏、关闭按钮、最小化按钮等。一个程序可以有多个窗口,一个窗口可以有多个控件。原创 2021-09-19 08:06:23 · 625 阅读 · 1 评论 -
第2天 | 28天学会PyQt5,用面向对象,让窗口居中
相较于面向过程编程,面向对象编程,更具重用性、可扩展性和维护性。PyQt5应用程序,用面向对象的实现如下。程序清单: pyqt5_obj.pyimport sysfrom PyQt5.QtWidgets import QApplication, QWidget, QDesktopWidget# 继承QWidgetclass Widget(QWidget): def __init__(self): super().__init__() self.in原创 2021-09-19 08:04:29 · 768 阅读 · 0 评论 -
第1天 | 28天学会PyQt5,开发四部曲
PyQt5是基于图形程序框架Qt5的Python语言实现,由一组Python模块构成。允许Python程序员很方便地创建完整的、功能健全的用户界面,是Digia的一套Qt5与python绑定的应用框架。它是一个跨平台的开发库,可以运行在大多数操作系统中,包含Windows、macOS和Ubuntu等。PyQt5采用双重许可模式,你可以在GPL和社区授权之间选择。在Windows、macOS和Ubuntu系统中安装PyQt5,用pip3 install PyQt5==5.15.4命令即可,不指定版本号时,原创 2021-09-17 12:53:28 · 1612 阅读 · 0 评论