从QLineEdit获取输入

时间:2014-04-01 12:34:25

标签: python user-interface get pyqt

我需要在GUI中从我的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 :(得分:2)

使用self.input1.text()读取窗口小部件的当前文本内容。

另请注意,当第一个方法结束时,Python会忘记x,因此x

中的showMessageBox()将是未知的

相关:

答案 1 :(得分: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_())