2016-09-26 4 views
1

私はテキストの編集に入力したテキストをコピーして、それを文字列変数に格納しようとしています。 私は、次のコードを書かれているが、それはプログラムが原因copyText()方法でNameErrorの動作を停止したテキストからテキストをコピーして文字列変数に編集する方法は?

from PyQt5 import QtGui,QtWidgets,QtCore 
import sys 

class GUI(QtWidgets.QWidget): 
    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') 

     button = QtWidgets.QPushButton("OK")   
     grid.addWidget(button) 
     button.clicked.connect(self.copyText) 
     self.show() 

    def copyText(self): 
     reviewEdit.setText("text") 
     print(text) 

if __name__ == "__main__": 
    app = QtWidgets.QApplication(sys.argv) 
    GUI = GUI() 
    sys.exit(app.exec_()) 

答えて

1

「Pythonは動作を停止しました」を示しています。変数reviewEditはそのスコープで終了しないため、参照できません。

この問題を解決する方法は、メインクラスのすべての子ウィジェットの属性を作ることです - あなたは後でselfを使用してそれらにアクセスすることができます

class GUI(QtWidgets.QWidget): 
    def __init__(self): 
     super(GUI,self).__init__() 
     self.initUI() 
    def initUI(self): 
     self.review = QtWidgets.QLabel('Review') 
     self.reviewEdit = QtWidgets.QTextEdit() 
     grid = QtWidgets.QGridLayout() 

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

     self.button = QtWidgets.QPushButton("OK") 
     grid.addWidget(self.button) 
     self.button.clicked.connect(self.copyText) 
     self.show() 

    def copyText(self): 
     # self.reviewEdit.setText("text") 
     text = self.reviewEdit.toPlainText() 
     print(text) 
1

まず、あなたがreviewEdit GUIクラスのメンバにする必要があります。このように:

text = str(self.reviewEdit.toPlainText()) 

self.reviewEdit = QtGui.QTextEdit() 

次、addBold(自己)で、次のようなテキストを取得します

関連する問題