PySide2开发环境配置以及一些建议

余生长醉 提交于 2020-08-16 02:11:53

 

  • LoadTek
  • 发布于 2020年03月08日
  • 最后修改于 2020年03月08日
  • Python

PySide2在2020年已经可以pip安装后开箱即用了,但是要开发速度快的话,还需要一些额外的工具配置。主要是三个Qt Design、Qt uic和Qt rcc这三个小工具。此外,对于是否使用QT Quick我也有些建议。

Python版本与PySide2安装

由于MSVC版本问题,Python2的PySide2无法在Windows下无法安装,同时Python2已经停止支持,建议使用Python来开发。同时Python3.8.0版本的PySide2无法在Windows下工作,需要更高的如3.8.1版本。通常学习开发时使用最新的Python版本就行了。

PySide2安装很简单:

pip install PySide2

PyCharm配置三个工具

Qt官方推荐的开发工具是Qt Creator,我也尝试了一下。感觉可能更适合C++开发者,对于Python的支持程度不行,环境配置、语法补全这些都跟不上,关键还没PyCharm好看。对于开发Python的,还是使用PyCharm更舒服,这个结论社区版也成立。

打开PyCharm的File->Settings,选择左侧Tools->External Tools,点击+号添加以下三个工具。

Name: Qt Designer
Program: C:worksSmoothPDFvenvScriptspyside2-designer.exe
Working directory: C:worksSmoothPDFvenvScripts
Name: Qt uic
Program: C:worksSmoothPDFvenvScriptspyside2-uic.exe
Arguments: $FileName$ -o $FileNameWithoutExtension$_ui.py
Working directory: $FileDir$
Name: Qt rcc
Program: C:workspytoolsvenvScriptspyside2-rcc.exe
Arguments: $FileName$ -o $FileNameWithoutExtension$_rc.py
Working directory: $FileDir$

我的PySide2安装在virtualenv的虚拟环境中,所以Program也直接从项目中的venv文件夹找。三个工具中,Qt Designer是用来可视化设计界面的。对于新手而言,绝大部分和UI设计相关的工作都应该使用Qt Designer设计后生成.ui文件,而不是用代码一点点码出来。

设计完后导出的.ui文件选中,点击PyCharm顶部工具栏的Tools->External Tools->Qt uic即可在当前目录生成原文件名_ui.py,在其他Python文件中import即可直接导入设计好的ui布局、组件等。

在ui设计中会用到图片等外部资源,最好使用qrc文件来导入资源,不知道的话就搜索如何使用qrc文件。Qt rcc工具使用方法同Qt uic,选中.qrc文件,点击PyCharm顶部工具栏的Tools->External Tools->Qt rcc即在当前目录生成原文件名_rc.py。注意_rc最好不要修改成其他的,因为Qt uic生成的.py文件默认导入的就是xxx_rc.py。

Qt Widget和Qt Quick

Qt自从5以后就开始推广Qt Quick,相对于原本的Qt Widget,通过Qt Quick可以快速做出灵活、美观的UI,同时通过Qt Quick甚至可以开发安卓等移动应用。那究竟学Qt Widget还是Qt Quick呢?

在我看来Qt Quick和Electron有点像,大概就是在应用里嵌入浏览器,不同的是Qt搞了一套QML语言,结合了CSS和JavaScript语言。这样带来的缺点有点多,首先是性能下降、占用资源变多。其次,QML语言需要花费更多时间学习,网上相关的教程什么很少,而PySide2或者PyQt5使用QML的更是少之又少。

并且PySide2中自带的Qt Designer并不支持QML,如果需要可视化设计QML,需要使用Qt Creator。而这软件就如之前说的,对Python支持并不行。相反,如果使用Qt Widget,将设计全部在Qt Designer完成,剩下的工作基本完全是使用Python代码编写,相关的资料虽然没有成系统的,但通过搜索绝大多数问题都有解决方法。

因此,现在来看还是推荐学习Qt Widget,跨三大平台加成熟稳定的方案加足够多的资料,对于绝大多数需求已经足够了。

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!