PyQt5 导入 QtGui 失败
Posted
技术标签:
【中文标题】PyQt5 导入 QtGui 失败【英文标题】:PyQt5 failing import of QtGui 【发布时间】:2013-12-23 19:19:36 【问题描述】:我刚从 PyQt4 迁移到 5,我遇到了 QtGui 的问题。我使用 32 位 Windows 安装程序安装,而不是我自己的构建。
当我这样做时:
from PyQt5 import QtGui
我明白了
class MainWindow(QtGui.QMainWindow, UI.MainUI.Ui_MainWindow):
AttributeError: 'module' object has no attribute 'QMainWindow'
所以我尝试了
from PyQt5.QtWidgets import QtGui
结果:
ImportError: cannot import name QtGui
然后我尝试根据Pyinstaller: ImportError: cannot import name QtGui 解决方法更改 sys.path,但它仍然给我相同的结果
ImportError: cannot import name QtGui
更新: 看起来我实际上确实导入了 QtGui,因为当我进入 IDLE 并尝试它时,它仍然会自动完成 QMovie 和一大堆其他属性。 QMainWindow 有什么理由不在那里吗? (不是,QDialog 也不是,它们似乎很重要)
【问题讨论】:
建议为新手使用 Anaconda 设置您的开发环境。请follow my article一步一步来。 【参考方案1】:假设一切安装正确,您需要稍微调整导入以从 PyQt4 移植到 PyQt5。
主要的 GUI 元素在 QtWidgets 模块中,而更基本的 GUI 元素在 QtGui 中。有关详细信息,请参阅Qt modules page。
示例代码需要更改为:
from PyQt5 import QtCore, QtGui, QtWidgets
class MainWindow(QtWidgets.QMainWindow, UI.MainUI.Ui_MainWindow):
...
有关从 PyQt4 移植到 PyQt5 的更多详细信息,请参阅:Differences Between PyQt4 and PyQt5。
【讨论】:
非常感谢,我花了很长时间才得到这么简单的答案。QApplication
(例如,app = QtWidgets.QApplication(sys.argv)
app.exec_()
)也已移至 QTWidgets。以上是关于PyQt5 导入 QtGui 失败的主要内容,如果未能解决你的问题,请参考以下文章