Qt Quick(Python)开发-VSCode插件配置、代码格式化

前言

Qt Quick使用PySide2开发的时候,个人更喜欢用VSCode。

主要是官方自带的IDE,Python的代码提示很差,也没有其他一些好用的插件。

Qml相关

全功能

qmlhelper 这个插件包含了 QMLQML Format的全部功能,安装这个就不用安装下面的插件了。

也是要添加环境变量的。

根据自己的Qt的安装路径配置环境变量,我这里是:

D:\Tools\Qt\5.15.2\mingw81_32\bin

配置环境变量后,重启VSCode使新的环境变量生效。

VSCode配置

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
"[qml]": {
"editor.defaultFormatter": "flywine.qmlhelper"
},
"qmlhelper.qmllint.command": {
"linux": "qmllint",
"windows": "qmllint.exe",
"osx": "qmllint"
},
"qmlhelper.qmlformat.command": {
"linux": "qmlformat",
"windows": "qmlformat.exe",
"osx": "qmlformat"
},
"qmlhelper.qmlls.command": {
"linux": "qmlls",
"windows": null,
"osx": "qmlls"
}

注意

我安装的Qt5上没有qmlls,所以这里设置为null,否则会报错。

Qml支持

QML QML language support for Visual Studio Code

Qml格式化插件

搜索QML Format安装

根据自己的Qt的安装路径配置环境变量,我这里是:

D:\Tools\Qt\5.15.2\mingw81_32\bin

配置环境变量后,重启VSCode使新的环境变量生效。

这样就能格式化Qml文件了。

别的格式化插件都效果不太好,推荐这个,他是利用Qt自带的程序进行格式化的。

Qrc格式化

Qrc本质是XML格式可以用XML的插件来格式化。

安装XML格式化插件 XML

image-20241225091545274

使用快捷键 Shift+Alt+F格式化选择XML。

Python相关

高亮代码补全

Python VSCode中Python的支持。

Pylance 提供高性能的代码补全和类型检查功能,安装后能看出哪些引用的类未使用。

格式化

安装下面的插件

  • Python 格式化的前提。

  • Black Formatter 格式化代码。

  • isort 格式化引用。

注意

如果格式化不生效可能是VSCode版本太低,升级版本就可以了。

目前Black Formatter的格式化效果是最好的。

我这里安装的最新版本的Black Formatter无法格式化

解决方法

卸载安装的版本,重新安装

安装Version 2024.6.0即可

如图

image-20250428183300854

查看安装的black版本

1
black --version

安装依赖

1
pip install black==23.1.0

配置中设置

1
2
3
4
5
6
7
8
9
10
11
12
"[python]": {
"editor.defaultFormatter": "ms-python.black-formatter",
"editor.formatOnSave": true,
"editor.codeActionsOnSave": {
"source.organizeImports": "always"
},
},
"black-formatter.args": [
"--line-length",
"88"
],
"isort.args":["--profile", "black"],

缩进彩虹提示

Python使使用缩进来控制层次结构的

这里就推荐安装这个缩进的插件indent-rainbow

主题

Atom One Light Theme 个人最喜欢的亮色主题。

Material Icon Theme 推荐的图标主题。

VSCode任务

项目根目录创建.vscode文件夹

添加文件tasks.json

运行任务直接用快捷键Ctrl+Shift+B

运行时再点击快捷键Ctrl+Shift+B可以选择重启任务或者终止任务

默认VSCode的任务使用的是环境变量中的Python,如果我们想用项目的虚拟环境,可以指定对应的位置的Python。

其中${workspaceFolder}获取的是项目的根目录。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
{
"version": "2.0.0",
"tasks": [
{
"label": "编译",
"type": "shell",
"command": "${workspaceFolder}/.qtcreator/Python_3_8_2venv/Scripts/pyside2-rcc resources.qrc -o resources_rc.py",
"problemMatcher": [],
},
{
"label": "主页面",
"type": "shell",
"command": "${workspaceFolder}/.qtcreator/Python_3_8_2venv/Scripts/python main.py",
"dependsOn": [
"编译"
],
"problemMatcher": [],
"group": {
"kind": "build",
"isDefault": true
}
}
]
}