如何使用 VS Code 编辑器在 Python 包 PySide2.QtCore.Qt 模块上实现智能感知/制表符补全?

2024-01-24

我对 Python 相当陌生,但已经设置并使用它视觉工作室代码 https://code.visualstudio.com/(注:这是not与 Visual Studio 相同)。

我正在使用 PySide2 包完成 Qt for Python 的 GUI 教程。大多数符号都通过 VS Code 的 Microsoft Python 扩展的 Intellisense 功能为我提供代码补全,但 PySide2.QtCore.Qt 模块却没有。

Intellisense 仍然给出了一些符号,但它们都是开头和结尾带有双下划线的符号,其中一个名为mro。举个例子,工作PySide2.QtCore.Qt.AlignHCenter编译和工作正常的符号不会显示制表符补全/智能感知。

如果我直接输入QtCore.Qt.AlignHCenter,它被接受并且工作正常。

Question

如何让 Intellisense/tab 完成功能适用于 PySide2 包中的 PySide2.QtCore.Qt 模块?

更多信息

PySide2 是 Qt 的开源 Python 适配器。 Qt 有一个几乎相同的单独 Python 绑定 PyQt5,主要区别在于许可(请参阅PyQt5 和 PySide2 有什么区别 https://www.learnpyqt.com/blog/pyqt5-vs-pyside2/).

Qt 模块似乎是虚拟模块,至少在 PySide2 中,每这个答案 https://stackoverflow.com/a/39317267/6501141,这可能是问题的一部分,尽管用 PyQt5.Qt 代替 PySide2.QtCore.Qt 似乎也不起作用(即 Intellisense 似乎对于两个绑定项目都损坏了)。

我在 VS Code 中安装了以下看起来相关的扩展(还有更多用于通用事物的扩展,还安装了其他语言):

  • Python 2019.9.34474
  • Python Extension Pack 1.6.0(包含 Python、MagicPython、Jinja、Django、VS IntelliCode)
  • Qt for Python 0.4.1(PyQt5 和 PySide2 支持)

我尝试过的事情

我有工作代码,发布在下面。这QtCore.Qt.AlignHCenter第 27 行中的元素不会提供任何智能感知Qt symbol.

我尝试以各种方式导入 Qt 模块,包括直接从 PyQt5 导入:

import PyQt5.Qt

(NOTE:根据评论,PyQt5 是与 PySide2 不同的项目,但大多数 API 是相同的,并且 Qt for Python VS Code 扩展支持 Qt 的两种绑定集)

这似乎什么也没做。

我尝试了其他方法来获取要导入的特定元素,例如:

from PySide2.QtCore import Qt
from PySide2.QtCore.Qt import *

The second line here fails, saying there is an unresolved import: enter image description here

第一行导入Qt致力于提供 Qt 作为已知模块,因此我可以输入Qt.xxx而不是QtCore.Qt.xxx,但智能感知仍然以同样的方式失败:

代码:

### PyDownloader
# Simple GUI to Download a file from a URL
#
# Can test with this URL:
# - https://github.com/gitextensions/gitextensions/raw/master/.nuget/NuGet.exe
# which is an ~ 5Mb file

import sys
from PySide2 import QtWidgets, QtGui, QtCore

import urllib.request

class Downloader(QtWidgets.QDialog):
    
    def __init__(self, parent=None):
        QtWidgets.QDialog.__init__(self)

        self.url = QtWidgets.QLineEdit()
        self.save_location = QtWidgets.QLineEdit()
        self.progress = QtWidgets.QProgressBar()
        download = QtWidgets.QPushButton("Download")

        self.url.setPlaceholderText("URL")
        self.save_location.setPlaceholderText("File save location")

        self.progress.setValue(0)
        self.progress.setAlignment(QtCore.Qt.AlignHCenter)

        layout = QtWidgets.QVBoxLayout()
        layout.addWidget(self.url)
        layout.addWidget(self.save_location)
        layout.addWidget(self.progress)
        layout.addWidget(download)
        self.setLayout(layout)

        self.setWindowTitle("PyDownloader")
        self.setFocus()

        download.clicked.connect(self.download)
    
    def download(self):
        url = self.url.text()
        save_location = self.save_location.text()
        urllib.request.urlretrieve(url, save_location, self.report)
        # Assume success
        self.progress.setValue(100)

    def report(self, blocknum, blocksize, totalsize):
        readsofar = blocknum * blocksize
        if totalsize > 0:
            percent = readsofar * 100 / totalsize
        else:
            # Just have it progress continuously as each block comes in
            percent = (blocknum % 100)
        self.progress.setValue(int(percent))


def main():
    app = QtWidgets.QApplication(sys.argv)
    dialog = Downloader()
    dialog.show()
    sys.exit(app.exec_())

if __name__ == '__main__':
    main()

None

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何使用 VS Code 编辑器在 Python 包 PySide2.QtCore.Qt 模块上实现智能感知/制表符补全? 的相关文章

  • 通过另一个指标数据框评估一个数据框

    我有一个源数据框input df PatientID KPI Key1 KPI Key2 KPI Key3 0 1 C602 C603 C601 NaN 1 2 C605 C606 C602 NaN 2 3 75 L239 C602 NaN
  • 为什么any (True for ... if cond) 比any (cond for ...) 快得多?

    检查列表是否包含奇数的两种类似方法 any x 2 for x in a any True for x in a if x 2 计时结果与a 0 10000000 每次尝试五次 次数以秒为单位 0 60 0 60 0 60 0 61 0 6
  • 来自 Pandas DataFrame 的用户定义的 Json 格式

    我有一个 pandas dataFrame 打印 pandas DataFrame 后 结果如下所示 country branch no of employee total salary count DOB count email x a
  • 使用 Visual Studio Code 时如何找到并使用最新版本的 CSC.exe?

    我正在设置 Visual Studio Code 来编写和学习 C 我无法找到并使用latest使用 Visual Studio Code 的 C 编译器版本 查询 使用 Visual Studio Code 终端命令查询我的编译器版本cs
  • Python矩阵问题[重复]

    这个问题在这里已经有答案了 这是从这个线程继续的 Python矩阵 有什么解决方案吗 https stackoverflow com questions 5835583 python matrix any solution Input fr
  • 安装 Ta-lib 会产生 gcc 错误

    当我尝试在我的 mac 上将 Ta lib 作为全局包安装时 出现 gcc 错误 我收到以下错误 gcc Wno unused result Wsign compare Wunreachable code DNDEBUG g fwrapv
  • Keras 中的条件批量归一化

    我正在尝试在 Keras 中实现条件批量标准化 我假设我必须创建一个自定义层 因此 我从正常化 https github com keras team keras blob master keras layers normalization
  • 群组名称不能以数字开头?

    看来我不能使用像这样的正则表达式 P lt 74xxx gt 0 9 重新打包会引发错误 sre constants error bad character in group name u 74xxx 我似乎无法使用以数字开头的组名称 为什
  • Pandas 使用 NaN 进行数据透视或重塑数据框

    我有这个数据框 我需要根据以下数据进行旋转或重塑frame col df frame 0 0 1 1 2 2 3 0 4 1 5 2 pvol 0 nan 1 nan 2 nan 3 23 1 4 24 3 5 25 6 vvol 0 10
  • sqlalchemy,使用反向包含(不在)子列值列表中进行选择

    我在flask sqlalchemy 中有一个典型的帖子 标签 与一篇帖子相关的许多标签 关系 并且我想选择我提供的列表中未标记任何标签的帖子 首先 我建立的模型 class Post db Model id db Column db In
  • python中终止进程的跨平台方法

    当我尝试使用 subprocess Popen terminate 或 Kill 命令终止 Windows 中的进程时 出现访问被拒绝错误 如果文件不再存在 我真的需要一种跨平台的方式来终止进程 是的 我知道这不是做我正在做的事情的最优雅的
  • Pygame 旋转射击

    我和几个朋友一直在编写一种有趣的新射击机制 为了让它发挥作用 我们需要朝玩家面对的方向射击 Sprite 正在使用 Pygame Transform Rotate 进行旋转 我们怎样才能找到一个角度 然后朝那个方向发射子弹呢 这是我们的精灵
  • 如何使用 BeautifulSoup 只抓取可见的网页文本?

    基本上 我想用BeautifulSoup严格抓住可见文字在网页上 例如 这个网页 http www nytimes com 2009 12 21 us 21storm html是我的测试用例 我主要想获取正文 文章 甚至可能到处都有一些选项
  • 函数调用中的星号[重复]

    这个问题在这里已经有答案了 我正在使用 itertools chain 以这种方式 展平 列表列表 uniqueCrossTabs list itertools chain uniqueCrossTabs 这与说有什么不同 uniqueCr
  • 无法从 celery 信号连接到 celery 任务?

    我正在尝试连接task2 from task success signal from celery signals import task success from celery import Celery app Celery app t
  • 确定 pyInstaller 生成的 Python EXE 中的应用程序路径

    我有一个驻留在单个 py 文件中的应用程序 我已经能够让 pyInstaller 将其成功捆绑到 Windows 的 EXE 中 问题是 应用程序需要一个 cfg 文件 该文件始终直接位于应用程序旁边的同一目录中 通常 我使用以下代码构建路
  • 获取 TypeError:ord() 期望长度为 1 的字符串,但 int 发现错误 [重复]

    这个问题在这里已经有答案了 Code is from PyPDF2 import PdfFileReader with open HTTP Book pdf rb as file pdf PdfFileReader file pagedd
  • 计算列表中的子列表

    L 2 4 5 6 2 1 6 6 3 2 4 5 3 4 5 我想知道任意子序列出现了多少次 s 2 4 5 例如会返回2次 I tried L count s 但它不起作用 因为我认为它期望寻找类似的东西 random numbers
  • 在 kivy 中嵌套小部件

    我正在尝试在 kivy 中制作一个界面 我认为即使在完成教程之后 我仍然不了解自定义小部件以及如何对它们进行层次结构的一些基本知识 我认为我有更多的盒模型 html 思维方式 因此小部件嵌套在本机 GUI 中的方式对我来说仍然有点陌生 一些
  • Python tkinter:在组合框中使用“文本变量”似乎没用

    使用textvariable在 tkinter 中创建组合框时的属性似乎完全没用 有人可以解释一下目的是什么吗 我查看了 Tcl 文档 它说textvariable用于设置默认值 但看起来在 tkinter 中您只需使用 set方法来做到这

随机推荐