PyQt5无法导入QtGui

时间:2013-12-23 19:19:36

标签: python python-3.x pyqt pyqt5

我刚从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和他们似乎都很重要)

1 个答案:

答案 0 :(得分:46)

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