从QLineEdit获取输入

0 投票
2 回答
6536 浏览
提问于 2025-04-18 00:50

我需要从我的图形界面中的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 就变得不认识了。

相关链接:

撰写回答