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 回答