繁体   English   中英

如何强制PyQt5用于QObject类?

[英]How to force PyQt5 use for QObject class?

我正在使用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 repos安装),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

PyQt5.QtCorePyQt4.QtCore模块都包装了QObject

当你尝试导入PyQt5.QtCorePyQt4.QtCore之前已经导入时,它PyQt4.QtCorePyQt4.QtCore

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

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM