Shr*_*rma 3 python pyqt4 python-2.7 qtpy
问题背景:这是我之前的 PyQt 项目,我正在研究并尝试启动 GUI。我已经使用 Python 2.7 设置了一个 Anaconda 环境并使用了 PyQt4。错误是:-
File "gui/gui.py", line 26, in <module>
from qtpy.QtCore import (Qt, QFileSystemWatcher, QSettings, pyqtSignal)
ImportError: cannot import name pyqtSignal
代码 :-
enter #import qt
from qtpy import QtCore, QtWidgets, QtGui, PYQT4 #changed from PYQT5
from qtpy.QtCore import (Qt, QFileSystemWatcher, QSettings, pyqtSignal)
Run Code Online (Sandbox Code Playgroud)
即使在尽我所能尝试设置环境和其他方面之后,我也无法确定为什么仍然会弹出此错误。在 Mac 上尝试过,即使在 Ubuntu 上也会出现类似的错误。有谁知道如何解决这个问题?
您正在使用qtpy而不是PyQt4直接使用。根据Don't delete QtCore.{pyqtSignal,pyqtSlot,pyqtProperty} · Issue #76 · spyder-ide/qtpy · GitHub,他们故意放弃了PyQt特定名称pyqtSignal,而是在导入时将它们重命名为通用名称,例如Signal统一。他们评论说这些名称遵循Qt5的命名方案。
所以你应该只是
from qtpy.QtCore import Qt, QFileSystemWatcher, QSettings, Signal
Run Code Online (Sandbox Code Playgroud)
并将 all 重命名pyqtSignal为Signal代码中的其他地方。