所以我对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()
答案 0 :(得分:1)
现在textBox
是initUI
方法中的局部变量,当你离开那个方法时它永远丢失了。如果您想在此班级实例上存储textBox
,则需要说出self.textBox = QtGui.QLineEdit()
。然后在printTextInput
中,您可以拨打print self.textBox.text()
。