PyQt5 не удалось импортировать QtGui
Я только что перешел с 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
то я попытался изменить sys.path в соответствии с Pyinstaller: ImportError: не могу импортировать имя QtGui, но он все равно дает мне тот же
ImportError: cannot import name QtGui
Обновление. Похоже, что я действительно импортирую QtGui, потому что, когда я иду в IDLE и пытаюсь это сделать, он по-прежнему автозаполняет QMovie и целую кучу других атрибутов. Есть ли причина, по которой QMainWindow просто не будет там? (Это не так, ни QDialog, и они кажутся важными)
Ответы
Ответ 1
Предполагая, что все установлено правильно, вам нужно слегка настроить импорт в порт от PyQt4 до PyQt5.
Основные элементы GUI находятся в модуле QtWidgets, в то время как более простые элементы GUI находятся в QtGui. Подробнее см. Страницу Qt modules.
Код примера должен быть изменен на следующее:
from PyQt5 import QtCore, QtGui, QtWidgets
class MainWindow(QtWidgets.QMainWindow, UI.MainUI.Ui_MainWindow):
...
Подробнее о портировании с PyQt4 в PyQt5 см. ниже: Различия между PyQt4 и PyQt5.