因此,我對PyQt和python有所瞭解。我正在嘗試編寫一個簡單的Qt應用程序,允許您單擊一個按鈕,然後在命令提示符下顯示您在文本字段中輸入的內容(我知道這是基本可笑的,但我試圖去了解它),但是我似乎無法弄清楚如何從printTexInput()方法訪問textBox屬性。所以我的問題是你將如何從另一種方法訪問該值?或者是我對這種完全錯誤的思考方式?任何幫助將不勝感激。我如何將信息從一種方法傳遞到另一種方法python
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()
現在'textBox'是'initUI'方法中的一個局部變量,當您離開該方法時它將永遠丟失。如果你想在你的類的這個實例上存儲'textBox',你需要改爲'self.textBox = QtGui.QLineEdit()'。然後在'printTextInput'中,你可以調用'print self.textBox.text()'。 – charleyc
@charleyc你應該發佈這個答案。 –
我試過了,輸出:NameError:全局名稱'textBox'沒有定義 –