2016-09-23 57 views
0

コード実行時に属性エラーが発生しているようです。具体的には、私が遭遇したエラーは、次のとおりです。PyQt5属性エラー: 'GUI'オブジェクトに 'setLayout'属性がありません

AttributeError: 'GUI' object has no attribute 'setLayout' 

私が現在使用しているコード:

class GUI(object): 
    def __init__(self): 
     super(GUI,self).__init__() 
     self.initUI() 

    def initUI(self): 
     review = QtWidgets.QLabel('Review') 
     reviewEdit = QtWidgets.QTextEdit() 
     grid = QtWidgets.QGridLayout() 

     grid.addWidget(review, 3, 0) 
     grid.addWidget(reviewEdit, 3, 1, 5, 1) 
     self.setLayout(grid) 
     self.setGeometry(300,300,350,300) 
     self.setWindowTitle('Sentiment Analysis') 
     self.show() 
+0

これは私がモジュールをインポートした方法です。PyQt5からインポートするQtGui、QtWidgets、QtCore –

+0

'' GUI''クラスは ''オブジェクト ''を継承します。私が間違っている場合は私を修正しますが、あなたは '' self''または '' object''に '' setLayout''を呼び出そうとしています。 '' MainWindow''や別のQt親/ウィジェットは必要ありませんか? – NuclearPeon

答えて

2

あなたのクラスにもobjectどちらもあなたがselfを介してアクセスしようとするメソッドを定義しますので、あなたが属性エラーを取得します。それらを定義するクラスQtから継承する必要があります。たとえば、QWidgetから継承します。

from PyQt5 import QtWidgets 

class GUI(QtWidgets.QWidget): 
    ... 

は、これらをクラスに提供します。機能を得るには、適切なPyQtベースクラスを使用例に置き換えてください。

+0

Worked!助けてくれてありがとう –

関連する問題