40

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 work around に従って sys.path を変更しようとしましたが、それでも同じ結果が得られます

ImportError: cannot import name QtGui

更新:実際に QtGui をインポートしているように見えます。これは、IDLE に入って試してみると、QMovie やその他の多くの属性がオートコンプリートされるためです。QMainWindow がそこにない理由はありますか? (そうではなく、QDialogでもなく、重要なようです)

4

1 に答える 1

62

すべてが正しくインストールされていると仮定すると、インポートを少し調整して、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 の違い」を参照してください。

于 2013-12-23T22:31:05.730 に答える