【问题标题】:PyQt5 failing import of QtGuiPyQt5 导入 QtGui 失败
【发布时间】:2014-01-12 01:01:25
【问题描述】:

我刚刚从 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一步一步来。

标签: python python-3.x pyqt pyqt5


【解决方案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。
猜你喜欢
  • 1970-01-01
  • 2014-05-01
  • 2018-10-17
  • 1970-01-01
  • 2017-08-09
  • 2021-04-21
  • 2021-01-23
相关资源
最近更新 更多