环境安装,也可参考VSCode配置PYQT5环境-CSDN博客
1、64位程序不能在32位机器上运行,所以得32位的安装包;python3.8是win7最后一个版本,3.8以上不支持win7,安装包下载https://www.python.org/ftp/python/3.8.10/python-3.8.10.exe
2、环境变量,控制台窗口python无反应的话需要添加python.exe所在目录到环境变量如D:\Python;D:\Python\Scripts
3、安装依赖库
pip install PyQt5 -i https://pypi.douban.com/simple
pip install PyQt5-tools -i https://pypi.douban.com/simple
4、VSCode插件集成
安装pyqt integration、python插件
pyqt integration插件配置qt路径和pyuic5路径
Pyuic:Cmd 一般是在安装的python环境下的D:\Python\Scripts\pyuic5.exe
Qtdesigner:Path 一般是在安装的python环境下的D:\Python\Lib\site-packages\qt5_applications\Qt\bin\designer.exe
4、发布打包
按目录打包,单文件打包会启动自解压,很多资源文件会引用出错,参考PyInstaller 系列 - 单目录和单文件模式,先安装
pip install pyinstaller -i https://pypi.douban.com/simple
PyInstaller 系列 - 基本用法 参考,系统命令行打包,单目录无需确认非控制台方式,python打包出来的exe运行无需python环境
pyinstaller --noconfirm --onedir --windowed "main.py"
linux打包 python如何编译成linux-CSDN博客
5、语法-继承
包括单继承和多继承
class 子类名(父类名1, 父类名2...)
详解Python中类属性、 实例属性、 类方法、 静态方法、实例方法-CSDN博客
6、QSS样式,Qt Style Sheet 中的 widget 不会自动从其父部件继承字体和颜色
Qt官方 Style Sheets Examples | Qt Widgets 5.15.16
PyQt5教程—实现QQ登录界面(加载qss样式表)-CSDN博客
PyQt5的界面美化秘密之批量设置部件的样式qss文件 - 知乎
Pyqt5自定义QWidget设置setStyleSheet不成功解决方法-CSDN博客
7、自定义类在QT Designer使用,结合qss类选择器
pyqt5 qt designer导入自定义类-CSDN博客
9、和其他语言差异
同名函数后面的覆盖前面的:python 可以定义两个同名但参数类型不同的类吗?-CSDN博客
无switch语句,用if-elif-else:python 为什么不支持 switch 语句? - 知乎
布尔值取非用not 代替
if not 表达式:
pass
目录之间导入import自己写的本地模块报错No module named-CSDN博客
10、QT Designer的界面自适应大小
Qt基础——让使用Designer创建的UI也能自动适应窗口大小
如何利用QtDesigner使控件大小自适应?-CSDN博客
11、遍历QLayout的子控件,设置子控件鼠标跟踪setMouseTracking,捕捉mouseMove;最底层Frame可以设置下border显示出来,避免被其他组件覆盖无法触发mouseMove
# Pyqt5遍历QLayout容器中的控件
for i in range(vbox.count()):
print(vbox.itemAt(i).widget())
Qt关于mouseMoveEvent的捕捉以及setMouseTracking - 代码先锋网
12、字符串format使用
# default arguments
print("Hello {}, your balance is {}.".format("Adam", 230.2346))
# positional arguments
print("Hello {0}, your balance is {1}.".format("Adam", 230.2346))
# keyword arguments
print("Hello {name}, your balance is {blc}.".format(name="Adam", blc=230.2346))
# mixed arguments
print("Hello {0}, your balance is {blc}.".format("Adam", blc=230.2346))
13、读取本地数据sqlite