文章目录
- 1. PyQt5基础
- 1.1 GUI编程学什么
- 1.2 PyQT是什么
- 1.3 PyQT的优势
- 1.4 开发环境的安装
- 1.5 第一个pyqt5桌面应用
- 2. QtDesigner的使用
- 2.1 安装和配置
- 2.2 快速入门
- 2.3 将ui文件转换成py文件
- 2.4 水平布局
- 2.5 垂直布局
- 2.6 同时使用水平布局和垂直布局
- 2.7 栅格布局
- 2.8 表单布局
- 2.9 容器布局
- 2.10 绝对布局
- 2.11 布局中的间隔和分割线
- 2.12 控件最大尺寸和最小尺寸
- 2.13 尺寸策略
- 2.14 设置控件之间的伙伴关系
- 2.15 修改控件的Tab顺序
- 2.16 信号与槽的设置
- 2.17 添加菜单和工具栏
- 3. PyQt5核心API的使用
- 3.1 创建主窗口
- 3.2 主窗口居中显示
- 3.3 退出应用程序
- 3.4 屏幕坐标系
- 3.5 设置窗口和应用程序图标
- 3.6 控件添加提示消息
- 4. PyQt5中常用控件API的使用
- 4.1 QLabel控件的基本用法
- 4.2 QLabel与伙伴控件
- 4.3 QLineEdit控件与回显模式
- 4.4 QLineEdit控件的校验器
- 4.5 使用掩码限制QLineEdit控件的输入
- 4.6 QLineEdit控件综合案例
QT是跨平台C++库的集合,它实现高级API来访问现代桌面和移动系统的许多方面。这些服务包括定位和定位服务、多媒体、NFC和蓝牙连接、基于Chromium的web浏览器以及传统的UI开发。PyQt5是Qt v5的一组完整的Python绑定。它被实现为超过35个扩展模块,并使Python在所有支持的平台(包括IOS和Android)上被用作C++的替代应用程序开发语言。PyQT5也可以嵌入在基于C++的应用程序中,以允许这些应用程序的用户配置或增强这些应用程序的功能。
首先,基本的 Python3 环境和 PyCharm 开发工具的安装,由于比较简单,博主在这里不再详细演示了!实在有问题的可以自行Google或者百度。其次就是GUI开发环境的安装,也就是安装PyQT5。这里演示在Python的虚拟环境中来安装PyQT5(Ubuntu Linux系统):
# 在Python全局环境中安装pipenv
$ pip3 install pipenv -i https://pypi.tuna.tsinghua.edu.cn/simple
# 创建项目目录
$ mkdir pyqt5-pro
# 进入项目目录
$ cd pyqt5-pro/
# 创建虚拟环境
$ pipenv --three
# 激活虚拟环境(激活环境后会自动创建Pipfile文件)
$ pipenv shell
# 为加速安装,将源改为国内源
(pyqt5-pro) $ vim Pipfile
url = "https://pypi.tuna.tsinghua.edu.cn/simple"
# 安装pyqt5库
(pyqt5-pro) $ pipenv install pyqt5
这个时候我们使用Pycharm打开这个项目文件夹:
可以从设置中看到该项目依赖的Python环境:
示例代码:
from PyQt5.Qt import *
import sys
if __name__ == '__main__':
# 创建QApplication类的实例
app = QApplication(sys.argv)
# 创建一个窗口
window = QWidget()
# 设置窗口标题
window.setWindowTitle('Hello World!')
# 设置窗口尺寸
window.resize(400, 400)
# 移动窗口位置
window.move(1000, 300)
# 创建label控件
label = QLabel(window)
# 为控件设置文本
label.setText('Hello World!')
# 移动空间的位置
label.move(160, 160)
# 显示窗口
window.show()
# 进入程序的主循环,并通过exit函数确保主循环安全结束
sys.exit(app.exec_())
效果图[在windows平台中显示有差别于Linux(注意我这不是Mac OS系统,只是ubuntu linux系统使用了Mac OS的主题)]:
安装Qt的工具包:
pip install PyQt5-tools -i https://pypi.douban.com/simple
安装完成后,QTdesigner 就在你的 python 环境下的扩展包里面了!
将QtDesigner集成到Pycharm:
可以通过配置好的PyCharm扩展工具直接打开QTDesigner:
简单介绍QTDesigner几个主要部分:
Ctrl+S后可以将其保存到项目根目录:
第一种方法:
$ python -m PyQt5.uic.pyuic demo.ui -o demo.py
第二种方法:
$ pyuic5 demo.ui -o demo.py
第三种方法:把第一种方法中命令集成到 PyCharm 中,首先需要使用 $ which python
查看当前使用的Python目录,
(pyqt5-pro) $ which python
/home/thanlon/.local/share/virtualenvs/pyqt5-pro-ihgfaRRJ/bin/python
将其复制粘贴到【Program】部分。然后再把 -m PyQt5.uic.pyuic $FileName$ -o $FileNameWithoutExtension$.py
加入到【Arguments】部分。再把 $FileDir$
加入到【Working directory】中:
转换之后,在项目目录下会生成.py文件:
使用水平布局的方式在QtDesigner中做一些简单的操作,如下图所示:
将.ui文件转换成.py文件后新建 RunMainWinHorizontalLayout.py
文件用来运行转换之后的.py文件 MainWinHorizontalLayout.py
:
import sys
import MainWinHorizontalLayout
from PyQt5.QtWidgets import QApplication, QMainWindow
if __name__ == '__main__':
# 创建QApplication类的实例
app = QApplication(sys.argv)
# 创建一个主窗口
mainWindow = QMainWindow()
# 创建Ui_MainWindow的实例
ui = MainWinHorizontalLayout.Ui_MainWindow()
# 调用setupUi在指定窗口(主窗口)中添加控件
ui.setupUi(mainWindow)
# 显示窗口
mainWindow.show()
# 进入程序的主循环,并通过exit函数确保主循环安全结束
sys.exit(app.exec_())
运行这个Python文件得到:
使用垂直布局的方式在QtDesigner中了做一些简单的操作,如下图所示:
将.ui文件转换成.py文件后新建 RunMainWinVerticalLayout.py
文件用来运行转换之后的.py文件 MainWinVerticalLayout.py
:
import sys
import MainWinVerticalLayout
from PyQt5.QtWidgets import QApplication, QMainWindow
if __name__ == '__main__':
# 创建QApplication类的实例
app = QApplication(sys.argv)
# 创建一个主窗口
mainWindow = QMainWindow()
# 创建Ui_MainWindow的实例
ui = MainWinVerticalLayout.Ui_MainWindow()
# 调用setupUi在指定窗口(主窗口)中添加控件
ui.setupUi(mainWindow)
# 显示窗口
mainWindow.show()
# 进入程序的主循环,并通过exit函数确保主循环安全结束
sys.exit(app.exec_())
运行这个.py文件得到:
“姓名”和“薪资”两行都使用水平布局,“备注+文本框”和它们一起使用垂直布局:
将.ui文件转换成.py文件后新建 RunMainWinHVLayout.py
文件用来运行转换之后的.py文件:
import sys
import RunMainWinVHLayout
from PyQt5.QtWidgets import QApplication, QMainWindow
if __name__ == '__main__':
# 创建QApplication类的实例
app = QApplication(sys.argv)
# 创建一个主窗口
mainWindow = QMainW