web-dev-qa-db-ja.com

QtGuiのインポートに失敗した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:QtGuiの名前をインポートできません 回避策に従ってsys.pathを変更しようとしましたが、それでも同じことができます

ImportError: cannot import name QtGui

更新:実際にQtGuiをインポートするように見えます。 QMainWindowが存在しない理由はありますか? (そうではなく、どちらもQDialogであり、重要だと思われます)

33
Faller

すべてが正しくインストールされていると仮定すると、PyQt4からPyQt5へのポートにインポートをわずかに調整する必要があります。

メインのGUI要素はQtWidgetsモジュールにあり、より基本的なGUI要素はQtGuiにあります。詳細については、 Qtモジュールページ を参照してください。

サンプルコードを次のように変更する必要があります。

from PyQt5 import QtCore, QtGui, QtWidgets

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

PyQt4からPyQt5への移植の詳細については、「 PyQt4とPyQt5の違い 」を参照してください。

48
ekhumoro