PyQt基本控件
介绍
PyQt和Qt是两个不同的框架,后者是一个跨平台的C++库,社区庞大;前者是基于Qt的python绑定,社区较小
基本控件
QtWidgets
QFileDialog
getOpenFileName选择文件
file_name, _ = QFileDialog.getOpenFileName(parent, caption, directory, filter, options=options)
1 | file_path, _ = QFileDialog.getOpenFileName(None, "打开图片", "", "*.jpg;;*.png;;*") |
运行模板
界面与核心不分离
1 | # 创建一个对象,代表了整个应用程序 |
界面核心分离
- 界面文件就是PYUIC之后的文件
- 主程序文件:
1 | import sys |
槽函数定义在哪,控件的连接就设置在哪,需要自己手动添加,在designer中就不需要拖拽设置槽函数连接了
两个外部工具
在pycharm中进行配置
pyuic
PyQt UI Compiler将.ui文件转换为.py文件。配置:
- 程序:
D:\Software\Python\Anaconda\Scripts\pyuic5.exe - 实参:
$FileName$ -o $FileNameWithoutExtension$.py - 工作目录:
$FileDir$
pyrcc
PyQt Resource Complier将Qt资源文件.qrc编译为python模块,然后通过代码访问。配置:
- 程序:
C:\Users\Admin\.conda\envs\torch\Scripts\pyrcc5.exe(在Anaconda的Scripts文件夹下并没有pyrcc5.exe这个程序,反而在torch的文件夹下有,干脆直接复制到Anaconda更方便,所以换成了D:\Software\Python\Anaconda\Scripts\pyrcc5.exe - 实参:
$FileName$ -o $FileNameWithoutExtension$_rc.py - 工作目录:
$FileDir$
所遇问题
qt designer操作界面
操作界面太大,导致设计的窗口大小和实际显示的大小不一致,解决:
修改系统环境变量QT_SCALE_FACTOR的值,值为1时和系统分辨率一样大,值为0.5时设计的和实际显示的一样大,为了方便设计这里设置为0.75(问题竟然出在环境变量,学到了
更:学到个勾八,就是因为这个环境变量的设置,导致WPS界面被压缩裁剪了,想卸载连个卸载按钮都找不到,还恶意篡改我的文件打开方式,打开之后界面又是错乱的,折腾一上午终于发现问题出在你这个环境变量,再也不会下载WPS了
界面问题
运行界面之后,始终是一个小窗口,且控件被压缩裁剪,解决:
- 主函数添加
QtCore.QCoreApplication.setAttribute(QtCore.Qt.AA_EnableHighDpiScaling)
此段代码启用高DPIDots Per Inch每英寸像素数缩放支持,可以在高分辨率屏幕(高DPI屏幕)上更好地渲染界面
- 重启电脑(此方法太玄乎