Windows下VS Code配置PyQt5/PySide2环境

目录

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

发布了110 篇原创文章 · 获赞 36 · 访问量 13万+

猜你喜欢

转载自blog.csdn.net/gongjianbo1992/article/details/100654638