gpt4 book ai didi

python - 如何强制 PyQt5 用于 QObject 类?

转载 作者:太空狗 更新时间:2023-10-30 01:28:32 25 4
gpt4 key购买 nike

我正在使用 Python 3 和 PyQt5 开发一个小型图形应用程序。在我使用的第一台计算机上,只安装了 PyQt5,我的代码中的一切都很好。但是当我想在安装了 PyQt4 和 PyQt5 的另一台笔记本电脑上运行我的代码时,出现以下错误:

RuntimeError: the PyQt5.QtCore and PyQt4.QtCore modules both wrap the QObject class

Python 解释器在从主文件调用的文件“ViewWindow.py”中找到错误。

由于我在这台笔记本电脑上同时安装了 PyQt4 和 PyQt5,并且因为我无法卸载 PyQt4(这太容易了......),我想知道是否可以强制使用 PyQt5.QtCore 或其他东西来避免这个问题。我在这台笔记本电脑上的配置:Debian 8、Python3.4、PyQt4 和 5(没有特殊配置,从 Debian 存储库安装),IDE = Spyder。

我将文件 main.pyViewWindow.py 的第一行放在那里。

# main.py
import sys
import sqlite3
import ViewWindow
from DataWindow import DataWindow
from PyQt5.QtCore import QObject # I tried adding this line, but nothing changed...
from PyQt5.QtWidgets import (QApplication,
QWidget,
QGridLayout,
QHBoxLayout,
QLabel,
QLineEdit,
QPushButton,
QTextEdit,
QVBoxLayout
)


class MainWindow(QWidget):
# Some cool stuff


# ViewWindow.py
import sys
import sqlite3
from PyQt5.QtCore import QObject # same thing than above, adding this line doesn't change the output.
from PyQt5.QtWidgets import (QApplication,
QWidget,
QGridLayout,
QLabel,
QPushButton,
QVBoxLayout
)


class ViewWindow(QWidget):

有人知道如何运行这段代码吗?

谢谢,

杰瑞·M。


编辑:我试图运行那个强制使用 Python3 的脚本,它成功了……看来问题来自 iPython3。感谢您的帮助。

最佳答案

带有消息的RuntimeError

the PyQt5.QtCore and PyQt4.QtCore modules both wrap the QObject class

在您尝试导入 PyQt5.QtCore 时引发,而 PyQt4.QtCore 之前已导入。

此错误在 SIP 内引发,用于连接到 Qt。就像它声明的那样,它只允许有一个模块声称要包装 QObject。因此,该错误只是告诉您,您正在同时使用 PyQt4 和 PyQt5。

因此您需要找到加载 PyQt4 的模块,将其配置为使用 PyQt5。或者,您可以尝试将 from PyQt5.QtCore import QObject 放在任何其他导入之前,并希望通常从 PyQt4 导入的模块具有适应性,并且能够使用 PyQt5 作为后备。

关于python - 如何强制 PyQt5 用于 QObject 类?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30697089/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com