0

ですから、私はPyQtとPythonの初心者です。ボタンをクリックして、コマンドプロンプトのテキストフィールドに入力した内容を表示できる簡単なQtアプリを作成しようとしています(これはとてつもなく基本的なことですが、学習しようとしています)が、 printTexInput()メソッドからtextBox属性にアクセスする方法を理解できないようです。だから私の質問は、別の方法からその値にどのようにアクセスするのですか?それとも、これについての私の考え方は完全に間違っていますか?どんな助けでも大歓迎です。

import sys
from PyQt4 import QtGui, QtCore

class Example(QtGui.QWidget):

    def __init__(self):
        super(Example, self).__init__()

        self.initUI()

    def initUI(self):
        textBoxLabel = QtGui.QLabel('Text Input')
        self.textBox = QtGui.QLineEdit()

        okayButton = QtGui.QPushButton("Okay")

        okayButton.clicked.connect(self.printTexInput)

        grid = QtGui.QGridLayout()
        grid.setSpacing(10)

        grid.addWidget(textBoxLabel, 0, 0)
        grid.addWidget(textBox, 0, 1)
        grid.addWidget(okayButton, 3, 3)

        self.setLayout(grid)

        self.setGeometry(300,300,250,250)
        self.setWindowTitle("test")
        self.show()

    def printTexInput(self):
        print self.textBox.text()
        self.close()




def main():

    app = QtGui.QApplication(sys.argv)
    ex  = Example()
    sys.exit(app.exec_())

if __name__=='__main__':
    main()
4

1 に答える 1

1

現在、メソッドtextBox内のローカル変数であり、そのinitUIメソッドを終了すると永久に失われます。クラスのこのインスタンスに保存する場合は、代わりtextBoxに言う必要があります。self.textBox = QtGui.QLineEdit()その後、代わりにprintTextInput電話をかけることができますprint self.textBox.text()

于 2013-02-03T05:19:04.690 に答える