首先,确认已安装Python并添加到环境变量。
确认已安装PyQt5/PySide2。pip install安装的时候可能会很慢,可以指定镜像,如:
pip install PyQt5 -i https://pypi.douban.com/simple
pip install pyside2 -i https://pypi.mirrors.ustc.edu.cn/simple/
或者更新旧版本:
pip install --upgrade PyQt5 -i https://pypi.douban.com/simple
(如果装了Qt软件的话,不需要装pyqt5-tools,用Qt里的designer就行了,而且上次我先装的PyQt5,后装的tools,结果这货因为绑定的Qt版本更低还把我的PyQt5给降级了)
参考:https://blog.csdn.net/u011580175/article/details/82292424
写Python一般我都装了微软这个插件
--------------------------------------------------------------------------------------
对于下面这个,会扩展右键菜单。有些人是手动配置的这个插件的designer路径等设置,其实没配置的时候直接点右键菜单去选择就行了(选择后他会自动保存路径到VSCode的setting.json配置文件)。
类似的,还有一个PySide2的插件,操作和上面那个差不多
--------------------------------------------------------------------------------------
除了上面那两个,还有个Qt for Python,貌似下载数也是最多的,支持PyQt5和PySide2
不过他的配置没那么智能,需要在setting.json中手动设置路径,如下:
"qtForPython.path.designer": "D:\\Qt\\Qt5.12.4\\5.12.4\\mingw73_32\\bin\\designer.exe",
"qtForPython.path.linguist": "D:\\Qt\\Qt5.12.4\\5.12.4\\mingw73_32\\bin\\linguist.exe",
"qtForPython.path.qmlscene": "D:\\Qt\\Qt5.12.4\\5.12.4\\mingw73_32\\bin\\qmlscene.exe --verbose",
"qtForPython.path.pyrcc": "pyrcc5 -o ./\"${fileBasenameNoExtension}.py\"",
"qtForPython.path.pyuic": "pyuic5 -d -o ./\"${fileBasenameNoExtension}.py\"",
--------------------------------------------------------------------------------------
当然,还有一切其他的好用的插件,可以在商店搜索Qt、QML等关键字
参考:https://blog.csdn.net/weixin_43792393/article/details/84456409
这里以Qt for Python插件操作为例,其他的也差不太多。
首先,利用QtDesigner拖一个简单的界面(在左侧目录列表里右键选择底部的new form,记得先配置好designer路径,见上一节配置。打开designer感觉有点慢,半天才加载出来)
设计好界面之后,保存ui文件
ui文件上右键可以选择修改或者Compile Form(即将ui代码转换为py代码,记得先配置好uic路径,见上一节配置)。ui生成的对应py文件如下:
接下来就属于编码部分,可以参考网上的PyQt5或Qt for Python的简单示例,看看他们是怎么使用ui混合py代码开发的。ui文件我命名为test_pyqt,以QWidget作为基类,并在窗口中拖了一个按钮,接下来要利用它实现关闭程序的功能。新建一个main.py,代码如下:
import sys
from PyQt5.QtWidgets import *
#这个test_pyqt是ui文件对应的py文件的文件名
from test_pyqt import Ui_Form
#我的Form是用的QWidget作为基类
class MyWindow(QWidget,Ui_Form):
def __init__(self, parent=None):
super().__init__(parent)
self.setupUi(self)
self.pushButton.clicked.connect(self.close)
if __name__=="__main__":
app=QApplication(sys.argv)
w=MyWindow()
w.resize(500,300)
w.show()
sys.exit(app.exec_())
编码结束之后,F5完美运行
参考:https://blog.csdn.net/lv0817/article/details/80287404
VSCode默认使用pylint来进行代码检查,对于PyQt或PySide2,我们需要修改下VSCode的配置文件,不然会出现一些莫名其妙的波浪线/提示。setting.json添加设置如下:
"python.linting.pylintArgs": [
//禁用某个规则,C惯例(编码风格),R重构,W警告,E错误,F致命错误
"--disable=W,C",
//针对E1101错误,如"xxx has no xxx member",也可以写在"--disable=E1101"
"--generate-members",
//pylint不会加载扩展模块(即非Python写的,而PyQt正好是使用sip工具绑定的C++Qt库)
//所以需要在扩展列表中显示声明(可以是配置pylint或者写在vscode配置文件中)
//参考:https://stackoverflow.com/questions/34746847/sublime-pylint-pyqt4-module-has-no-member
"--extension-pkg-whitelist=PyQt5"
],
还有个小问题就是,有时候可能刚加载完,会有黄色下划线,但是过一会儿就消失了。试了下,import的时候不用星号就没这个问题。
参考:https://stackoverflow.com/questions/34746847/sublime-pylint-pyqt4-module-has-no-member
参考:https://blog.csdn.net/ouening/article/details/81805771
参考:https://blog.csdn.net/chivalrousli/article/details/84566467