我刚从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也不重要,它们似乎很重要)

最佳答案

假设一切都已正确安装,则需要稍微调整导入内容以从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

关于python - PyQt5导入QtGui失败,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/20749819/

10-12 16:38