目录
(十) PyQt5 输入框(LineEdit)获取/失去焦点事件
一、安装调试和基础配置
(一) 安装Python(3.9)
Python3https://www.python.org/downloads/
(二) 安装 Pycharm (IDE)
Pycharmhttps://www.jetbrains.com/zh-cn/pycharm/
(三) 配置IDE & 安装库
1) PyCharm安装完成后,新创建一个项目,为项目命名、确定项目保存的位置、点选
2) 依次点选 File(文件) -> Settings (设置)-> Project:(项目:) -> Project Interpreter(Python 解释器), 右侧列表中显示已经安装的软件包,点击 + 号。
3) 在可用软件包中进行搜索,分别安装软件包:PyQt5、PyQt5-Qt、PyQt5-Qt5、 PyQt5-sip、pyqt5-tools等,具体需要哪些软件包根据自己的项目进行配置。
4)如果pyqt5-tools无法安装,可以使用pip进行安装。
5)依次点击File(文件) -> Settings(设置) -> Tools(工具) -> External Tools(外部工具),在右侧列表中点击 + 号,分别配置 QtDesigner(用于设计界面)、PyUic(将ui界面文件转换为Python代码)、PyRcc等,具体需要哪些工具根据自己的项目需求进行配置,这些工具便于在项目中对资源文件进行开发与转换等。
Name(名称): QtDesigner
Program(程序):C:\Python39\Lib\site-packages\qt5_applications\Qt\bin\designer.exe
Arguments(实参):空置
Working directory(工作目录):$FileDir$
Name(名称): PyUic
Program(程序):C:\Python39\Scripts\pyuic5.exe
Arguments(实参):$FileName$ -o $FileNameWithoutExtension$.py
Working directory(工作目录):$FileDir$
Name(名称): PyRcc
Program(程序):C:\Python39\Scripts\pyrcc5.exe
Arguments(实参):$FileName$ -o $FileNameWithoutExtension$.py
Working directory(工作目录):$FileDir$
6)Windows 中文的编码大部分使用GBK,所以将IDE的编码配置GBK是有必要的,依次点击 File(文件) -> Settings(设置) -> Editor(编辑器) -> File Encodings(文件编码),右侧的 Global Encoding (全局编码)修改为 GBK。
7)编辑Python 代码时,代码软换行(自动换行):依次点击 File(文件) -> Settings(设置) -> Editor(编辑器) -> General(常规),右侧的Soft Wraps的第一行 Soft-wrap files(对这些文件进行软换行): 中添加自己需要自动换行的文件扩展名,比如 py 文件则在后面添加:;*.py。
二、PyQt5相关
(一) PyQt5 去掉标题栏
在 Form 的 py 文件中 setupUi 方法中针对 Form 配置的末尾加入(该方法配置的标题栏还残留一条,并且尺寸大小也不能再固定,不是很理想):
Form.setWindowFlags(Qt.Qt.CustomizeWindowHint)
(二) PyQt5 高分辨率屏幕缩放
操作系统对高分辨率的屏幕实现了缩放与布局的设定,所以会导致默认情况下在高分辨率的屏幕并开启缩放的显示器上出现窗口布局错乱的问题。
在程序的入口处添加该配置:
QtCore.QCoreApplication.setAttribute(
QtCore.Qt.AA_EnableHighDpiScaling
)
(三) PyQt5 打开子窗口
通过窗口类的 show() 函数实现窗口的打开
(四) PyQt5 子窗口置顶并锁定父窗口
在子窗口.ui文件生成的py文件中 setupUi 方法里针对 Form 配置的末尾加入:
Form.setWindowFlags(QtCore.Qt.WindowCloseButtonHint | QtCore.Qt.MSWindowsFixedSizeDialogHint | QtCore.Qt.Tool)
Form.setWindowModality(QtCore.Qt.ApplicationModal)
(五) PyQt5 弹出式对话框
以下是 PyQt5 默认的几种弹出式对话框,对话框的按钮都是英文,并且不能直接进行按钮文字的修改,如果有需要可以进行重写(本次开发没有相关需求,后期再进行补充)
QtWidgets.QMessageBox.information(
self,
"标题",
"消息",
QtWidgets.QMessageBox.Yes|QtWidgets.QMessageBox.No,
QtWidgets.QMessageBox.Yes
)
QtWidgets.QMessageBox.question(
self,
"标题",
"问答消息",
QtWidgets.QMessageBox.Yes|QtWid