目录
0.安装PyQt5/PySide2
1.VSCode安装相关插件
2.写一个PyQt5程序
3.VSCode的pylint配置
4.没有自动补全/智能提示?
0.安装PyQt5/PySide2首先,确认已安装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
(2020-2-16补充)
现在Win10好像得用管理员打开CMD来pip install,不然会提示加--user参数;
然后Win10命令行输入Python默认会打开应用商店,因为他用户环境变量里有个变量对应路径下有这Python相关的,我试了下也没法删掉这个文件,就把这个环境变量删了:%USERPROFILE%\AppData\Local\Microsoft\WindowsApps。也可以不删这个用户环境变量,把Python路径加到系统环境变量。
1.VSCode安装相关插件写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
2.写一个PyQt5程序这里以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
3.VSCode的pylint配置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
4.没有自动补全/智能提示?(2020-2-21补充)
今天用VSCode,发现也没法智能提示了,看了下网上的方法大部分都是如下设置:
"python.jediEnabled": false, "python.autoComplete.extraPaths": [ "D:\\Program Files\\Python37\\Lib\\site-packages", "D:\\Program Files\\Python37\\Scripts" ]
我设置之后也只能部分补全,重新折腾了下终于可以了:
VSCode我先重新覆盖安装了,Python相关的插件只保留了[Python]和[PYQT Integration],pylint也用pip重新安装了。然后重新打开VSCode,看到他在自动安装Python Language Server:
等他安装好重新启动了下,发现智能提示又回来了。
有些人说VSCode自带这个,提示比较慢,但是目前感觉速度还可以。先用看看后面还有其他问题没。
参考:https://blog.csdn.net/woswod/article/details/92795526
参考:https://www.zhihu.com/question/54395822
作者:龚建波