web-dev-qa-db-fra.com

PyQt5 a échoué à l'importation de QtGui

Je viens de passer de PyQt4 à 5 et j'ai un problème avec QtGui. J'ai installé en utilisant le programme d'installation de Windows 32 bits, pas ma propre version.

quand je fais:

from PyQt5 import QtGui

Je reçois

class MainWindow(QtGui.QMainWindow, UI.MainUI.Ui_MainWindow):
AttributeError: 'module' object has no attribute 'QMainWindow'

alors j'ai essayé

from PyQt5.QtWidgets import QtGui

Ce qui se traduit par:

ImportError: cannot import name QtGui

alors j'ai essayé de changer le sys.path selon Pyinstaller: ImportError: impossible d'importer le nom QtGui contourner mais ça me donne toujours la même chose

ImportError: cannot import name QtGui

Mise à jour: Il semblerait que j'importe en fait QtGui parce que quand je vais en mode IDLE et que j'essaye, il continue à compléter automatiquement QMovie et tout un tas d'autres attributs . Y a-t-il une raison pour laquelle QMainWindow ne serait tout simplement pas là-dedans? (Ce n'est pas le cas, ni QDialog et ils semblent importants)

33
Faller

En supposant que tout a été installé correctement, vous devez ajuster légèrement vos importations au port de PyQt4 à PyQt5.

Les principaux éléments GUI sont dans le module QtWidgets, tandis que les éléments GUI les plus basiques sont dans QtGui. Voir page modules Qt pour plus de détails.

L'exemple de code doit être changé en quelque chose comme:

from PyQt5 import QtCore, QtGui, QtWidgets

class MainWindow(QtWidgets.QMainWindow, UI.MainUI.Ui_MainWindow):
    ...

Pour plus de détails sur le portage de PyQt4 vers PyQt5, voir: Différences entre PyQt4 et PyQt5 .

48
ekhumoro