从QLineEdit获取输入
我需要从我的图形界面中的QLineEdit获取一个数字,然后用这个数字进行计算,最后把结果显示在一个消息框里,但我总是遇到错误。
self.connect(self.calculate, SIGNAL("clicked()"),self.showMessageBox)
y = int(self.input1.get())
x = 31 + y
def showMessageBox(self):
QMessageBox.information(self,"NRC","You need " + str(x))
2 个回答
0
你的代码结构有几个问题。最简单的办法就是给你一个符合你要求的工作示例,这样你可以看到它们是如何组合在一起的:
from PyQt4 import QtCore, QtGui
class Window(QtGui.QWidget):
def __init__(self):
QtGui.QWidget.__init__(self)
self.input1 = QtGui.QLineEdit(self)
self.calculate = QtGui.QPushButton('Calculate', self)
self.calculate.clicked.connect(self.handleCalculate)
layout = QtGui.QHBoxLayout(self)
layout.addWidget(self.input1)
layout.addWidget(self.calculate)
def handleCalculate(self):
y = int(self.input1.text())
x = 31 + y
self.showMessageBox(x)
def showMessageBox(self, value):
QtGui.QMessageBox.information(self, 'NRC', 'You need %s' % value)
if __name__ == '__main__':
import sys
app = QtGui.QApplication(sys.argv)
window = Window()
window.setGeometry(500, 300, 300, 50)
window.show()
sys.exit(app.exec_())
2
使用 self.input1.text()
可以读取这个小部件当前的文本内容。
另外要注意,当第一个方法结束后,Python 会忘记 x
这个变量,所以在 showMessageBox()
方法里 x
就变得不认识了。
相关链接: