Python 中 PyQt5 库语法
PyQt5库(一)
一、 简介
1、 什么是 Qt
使用 C++ 语言编写的跨平台 GUI 库,支持Windows 、MacOS和Linux。由于 Qt 使用C++语言编写,所以使用Qt开发的GUI程序的界面风格与当前操作系统完全相同,而且运行效率很高
2、 什么是PyQt
PyQt实现了一个Python模块集。它有超过300类,将近6000个函数和方法。它是一个多平台的工具包,可以运行在所有主要操作系统上,包括UNIX,Windows和Mac。 PyQt采用双许可证,开发人员可以选择GPL和商业许可。在此之前,GPL的版本只能用在Unix上,从PyQt的版本4开始,GPL许可证可用于所有支持的平台 ,同时Qt能实现的功能PyQt都能实现
3、 环境搭建
安装 PyQt5
二、 基本结构
1、 第一个程序
#!/usr/bin/env python # -*- coding: UTF-8 -*- # @author: kun # @file: Demo.py # @time: 2022/3/28 9:20 from PyQt5.QtWidgets import QApplication, QWidget, QLabel, qApp import sys # 创建一个应用程序 # sys.argv 当别人通过命令行执行这个程序的时候,可以设定一种功能(接收命令行传递的参数) app = QApplication(sys.argv) print(app.arguments()) # 得到命令行的参数 print(qApp.arguments()) # qApp为全局变量 # 创建一个窗口 w = QWidget() # 窗口尺寸 w.resize(300, 150) # 移动窗口,窗口左上角的坐标 w.move(300, 300) # 设置窗口的标题 w.setWindowTitle("第一个基于pyqt5的桌面应用") # 设置标签 label = QLabel(w) label.setText("hello world") label.move(150, 75) # 显示窗口 w.show() # 进入程序的消息循环,并通过exit函数确保主循环安全结束,相当于无限循环 # 检测整个程序所接收到的用户交互信息 sys.exit(app.exec_())
2、 控件操作
步骤:
-
创建控件
-
# 设置标签 label = QLabel(contain) 参数:
- contain:代表要在哪个控件(容器)上面展示,可以为空
当我们创建一个控件之后,如果说,这个控件没有父控件,则把它当作顶层控件(窗口)
-
-
设置控件
- 大小,样式,位置,样式等
- 顶层控件有权限去设置窗口内容,结构等
-
展示控件
- 当控件没有父控件时,要使用 show 方法去展示控件
3、 快速生成代码
在pycharm中的活动模板配置如下代码,快速生成代码
from PyQt5.Qt import * class Window(QWidget): def __init__(self): super().__init__() self.setWindowTitle("$test$") # 设置标题 self.resize($500$, $500$) # 设置窗口大小 self.move($300$, $300$) # 移动窗口 self.setup_ui() # 调用创建控件的方法 def setup_ui(self): # 添加控件的操作 pass if __name__ == '__main__': # 可以通过导包来运行窗口 import sys app = QApplication(sys.argv) # 创建窗口 w = Window() # 显示窗口 w.show() sys.exit(app.exec_())
4、 面向对象
提高代码的可维护性
#!/usr/bin/env python # -*- coding: UTF-8 -*- # @author: kun # @file: Demo.py # @time: 2022/3/28 9:20 from PyQt5.QtWidgets import QApplication, QWidget, QLabel class Window(QWidget): def __init__(self): super(Window, self).__init__() self.setWindowTitle("Hello") # 设置标题 self.resize(300, 150) # 设置窗口大小 self.move(300, 300) # 移动窗口 self.setup_label() # 调用创建控件的方法 def setup_label(self): # 添加控件的操作 label = QLabel(self) label.setText("Hello World") label.move(150, 75) if __name__ == '__main__': # 可以通过导包来运行窗口 import sys app = QApplication(sys.argv) # 创建窗口 w = Window() # 显示窗口 w.show() sys.exit(app.exec_())
三、 基类控件
什么是控件?
- 一个程序界面上的各个独立的标准,一块矩形区域
- 每类控件都具备不同的功能
- 同时,有些控件有相似的功能,可以通过继承关系学习