PyDev 无法识别 PyQt5

2024-01-01

我正在关注 pyqt 教程,并得到以下代码:

import sys
from PyQt5.QtCore import *
from PyQt5.QtGui import *
from PyQt5.QtWidgets import *

class Example(QWidget):

    def __init__(self):
        super(Example, self).__init__()
        self.initUI()

    def initUI(self):
        cb = QCheckBox('Show title', self)
        cb.move(20, 20)
        cb.toggle()
        cb.stateChanged.connect(self.changeTitle)

        self.setGeometry(300, 300, 250, 150)
        self.setWindowTitle('Checkbox')
        self.show()

    def changeTitle(self, state):
        if state == Qt.Checked:
            self.setWindowTitle('Checkbox')
        else: self.setWindowTitle('Unchecked!')

def main():
    app = QApplication(sys.argv)
    ex = Example()
    sys.exit(app.exec_())

if __name__ == '__main__':
    main()

我在 Eclipse 上使用 PyDev。可以说代码运行良好,但尴尬的是 PyDev 用红线强调了 Qt/Q 的任何内容,当鼠标悬停在上面时会显示Undefined variable: <..>。如果它是未定义的,那么我的代码如何运行而没有错误?显然这应该是 PyDev 的问题。我已经删除了 python 解释器(它指向 python2.7 而不是 3.4)并将其读取为正确的版本;但这没有用。有趣的是,它识别 PyQt4 并坚持使用其中的小部件而不是 PyQt5。

请注意,上面的代码示例来自另一台也装有 PyQt5 的笔记本电脑。这两个项目都来自 PyDev,并且都使用 Ubuntu 15.04。我在当前计算机上导入项目可能会扰乱 PyDev 解析所需的库。有谁能解决为什么 PyDev 无法识别 PyQt5 的问题吗?


我有同样的问题。这些步骤对我有用。

  1. 设置环境变量:export QT_API=pyqt5(或任何适当的变量)
  2. 重新启动 Eclipse 以便获取新的环境设置,然后将 PyQt5 添加到解释器的强制内置列表中(Window->preferences->pydev->interpreters->pythonterpreters)或查看此处http://www.pydev.org/manual_101_interpreter.html http://www.pydev.org/manual_101_interpreter.html更多细节。

以下问题提示我变量的存在:使用 PyQt5 设置 IPython Qtconsole https://stackoverflow.com/questions/24324621/setting-up-ipython-qtconsole-with-pyqt。在设置它之前,我只需将“PyQt5”添加到内置函数即可获得一些完成功能,但它不会提供完整的完成列表,例如from PyQt5.QtGui import,即使 ipython 独立会。此外,pydev中的python控制台也有同样的问题并调用module_completion("from PyQt5.QtGui import Q") from Ipython.core.completerlib产生了同样的不完整列表。最后,我猜测,由于 pydev 正在为 gui 事件循环加载 PyQt4(也可以在解释器设置中进行配置),因此当它尝试内省 Qt5 模块时,会出现命名空间冲突,导致它在构建之前就退出了。完整的竣工清单。设置环境变量会导致 pydev 加载 pyqt5 而不是默认的 pyqt4。我没有检查过,但似乎这样设置 pydev 在完成 pyqt4 引用时会遇到问题。

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

PyDev 无法识别 PyQt5 的相关文章

随机推荐

  • Rails - text_field 中的默认值但仅适用于 new_record?

    在内容模型上有一个名为slug 创建新记录时 我想使用助手来填充此字段 但在现有记录上我想使用数据库中的值 目前我有 但这似乎有点冗长 这是最好的方法 还是没有其他方法 Rails 新手只是想在我不确定的问题上找到 Rails 方式 Edi
  • python:迭代列表或异步生成器

    自从 Python 中引入了迭代器以来 你总是可以不关心你正在处理的是迭代器还是列表 from random import random def gen list print gen for i in range 10 yield i de
  • 如何在 ggplot 中使用带有特殊字符的粗体和表达式?

    我认为这很简单 我在 ggplot2 的表达式函数中使用粗体 这对我来说很清楚并且有效 但是当我将它与特殊字符一起使用时 例如mu mol具有 mol or H 2 O具有2作为下标 它不起作用 实际上 它不会将特殊字符加粗 我尝试使用我知
  • JDK11“jstat -gc ”中的“CGC”和“CGCT”是什么意思?

    有两个项目称为 CGC 和 CGCT 我找不到描述其含义的文档和手册页 jstat gc 139934 S0C S1C S0U S1U EC EU OC OU MC MU CCSC CCSU YGC YGCT FGC FGCT CGC CG
  • 类型类(在 app_Code 中)存在于“solution.dll”和“app_code.wxdafd.dll”中

    我在 C net 中创建了一个 Web 应用程序 并创建了一个 app code 文件夹 其中创建了一个文件 名为 SessionHelper cs 属性正确设置为 Compile 以便它可以在Web应用程序中访问 它用于设置和获取会话参数
  • 如何在 PHPExcel 中转换 HTML 字符?

    使用 PHPExcel 开发动态生成 Excel 文档的 PHP 应用程序 http phpexcel codeplex com http phpexcel codeplex com 我遇到的问题是我的 Excel 文档将包含一些特殊的 H
  • 如何使用 Selenium IDE 从下拉列表中选择值

    我第一次使用 Selenium IDE 对自动化脚本编写一无所知 到目前为止 我可以使用 IDE 进行管理 但有一个问题是我无法从下拉列表中随机选择一个值 而是每次都手动输入索引或标签值 谁能帮我解决这个问题吗 谢谢 我尝试了下面的方法并且
  • 在 Swift 中,如何将数组中的每个元素设置为 nil?

    var roomsLiveStates Firebase for ref in roomsLiveStates if ref nil ref nil 这似乎不起作用 您只需将每个设置为nil for index in 0 lt roomsL
  • 使用 Django 用户管理使电子邮件字段唯一

    有一个几乎类似的问题 如何使电子邮件字段在 Django 中的 contrib auth 模型用户中唯一 https stackoverflow com questions 1160030 how to make email field u
  • 在 Excel 中创建新函数

    我创建了一个 IF公式 在Excel中 想要将该公式转换为函数我阅读了多篇文章 但无法将公式转换为函数 公式如下 IF LEFT L3 4 0321 12 ABC type IF LEFT L3 3 021 543 XYZ type IF
  • 隐藏 wp-admin 使用 htaccess

    我想使用 htaccess文件将wp admin更改为admin panel 当访问链接admin panel时 它显示wp admin的内容 但是当访问链接wp admin时 它会注意到找不到 BEGIN WordPress
  • 文件下载问题:文件名中空格被截断!

    当我正在编写从服务器下载文件的代码时 使用 Response AddHeader Content Disposition attachment filename Server UrlPathEncode Path GetFileName F
  • 如果 CubeField.Orientation = xlPageField 如何设置 PivotField.HiddenItemsList 属性的值

    任务是自动化 OLAP 数据透视表数据过滤 我需要排除名为 sPivotFieldName 的数据透视字段中的一些项目 下面的代码工作得很好 With Worksheets sWorksheetName PivotTables sPivot
  • 科特林中的片段

    我被困在我的应用程序中 因为我必须用 kotlin 中的导航抽屉做一个片段 任何人都可以帮忙吗 我在网上搜索了很多东西 但我还没有找到任何东西 下面是我在主要活动中所做的两项 我希望它也出现在片段中 override fun onNavig
  • rxJava,定期刷新api数据

    我使用以下 observable 来调用改造 api 然后将响应保存到缓存文件中 Override public Observable
  • GLFW 打开 OpenGL 3.2 上下文,但 Freeglut 不能 - 为什么?

    我正在 Mac 上工作 我已经编译并安装了 FreeGlut 但我似乎无法使用它获取 OpenGL 3 2 上下文 不过 我在使用 GLFW 时可以毫无问题地获取它 所以在 GLFW 中 这段代码工作得很好 glfwOpenWindowHi
  • 如何强制 Firestore 客户端应用程序维护集合的正确文档计数?

    Firestore 无法查询集合的大小 因此如果客户端应用程序需要知道此值 则需要对另一个集合中的文档进行一些维护来保存此计数 但是 它要求客户端正确执行事务 以便在添加和删除文档时保持此计数最新 恶意或损坏的客户端可能会独立修改集合或计数
  • 带图片背景的点领导者

    所以我正在为一家餐厅建立一个网站 但我陷入了困境 我正在尝试在那里创建菜单 这个想法是将食物名称向左对齐 价格向右对齐 并用点填充它们之间的空白 像这样 汉堡 4 00 美元 XXL 汉堡 4 00 奶昔 4 00 美元 我找到了几种解决方
  • 在 Android 中使用 putSerialized

    putSerialized 坏了吗 当我使用 putSerialized 传递 null 时 FillSummary class 会按其应有的方式启动 然而 如果我传递 TestSerial 对象 Android 就会强制关闭 我需要做什么
  • PyDev 无法识别 PyQt5

    我正在关注 pyqt 教程 并得到以下代码 import sys from PyQt5 QtCore import from PyQt5 QtGui import from PyQt5 QtWidgets import class Exam