如何获取VSCode所有扩展列表并在PyQt5列表部件中展示?
获取VSCode已安装扩展并显示在PyQt5 List Widget中
核心思路
VSCode自带命令行工具可以列出已安装扩展,通过Python的subprocess模块调用该命令,解析输出后即可将内容添加到PyQt5的QListWidget中。
实现步骤
调用VSCode命令行获取扩展列表
使用code --list-extensions命令可获取所有已安装扩展的ID;如果需要版本信息,加上--show-versions参数即可。解析命令输出
捕获命令执行后的标准输出,按行分割得到每个扩展的信息。加载到PyQt5 List Widget
遍历解析后的扩展列表,逐个创建QListWidgetItem并添加到控件中。
完整代码示例
import subprocess from PyQt5.QtWidgets import QApplication, QWidget, QListWidget, QVBoxLayout def get_vscode_extensions(include_version=True): # 构建命令 cmd = ["code", "--list-extensions"] if include_version: cmd.append("--show-versions") try: # 执行命令并捕获输出 result = subprocess.run(cmd, capture_output=True, text=True, check=True) # 按行分割输出,过滤空行 extensions = [line.strip() for line in result.stdout.splitlines() if line.strip()] return extensions except subprocess.CalledProcessError as e: print(f"获取扩展列表失败: {e.stderr}") return [] except FileNotFoundError: print("未找到VSCode命令行工具,请确保VSCode已添加到系统PATH,或指定code的绝对路径") return [] if __name__ == "__main__": app = QApplication([]) window = QWidget() window.setWindowTitle("VSCode已安装扩展") layout = QVBoxLayout(window) list_widget = QListWidget() layout.addWidget(list_widget) # 获取扩展列表并添加到List Widget extensions = get_vscode_extensions() for ext in extensions: list_widget.addItem(ext) window.resize(400, 600) window.show() app.exec_()
注意事项
- 如果VSCode未添加到系统PATH,需要将
cmd中的"code"替换为VSCode命令行工具的绝对路径:- Windows:
"C:\\Program Files\\Microsoft VS Code\\bin\\code.cmd" - macOS:
"/Applications/Visual Studio Code.app/Contents/Resources/app/bin/code" - Linux:
"/usr/bin/code"
- Windows:
内容的提问来源于stack exchange,提问作者Kned
相关产品推荐
相关产品推荐

