首页 > 解决方案 > 如何从事件函数返回值并将其设置为 LineEdit?

问题描述

我正在努力返回一个值并将其显示在窗口中。我可以打印值。我想将返回值设置为 line3。我正在尝试做一个基本程序,其中 line1 和 line2 中有两个输入值,并且这两个值的输出或总和将显示在 line3 中。

import sys
from PyQt5.QtWidgets import QApplication,QWidget,QLabel, QLineEdit, QPushButton

def dialog(): *#this block will add two input from line1 and line2* 
    value1=int(line1.text())
    value2=int(line2.text())
    result=value1+value2
    print(result)
    return result

if __name__=="__main__":
    app=QApplication(sys.argv)
    w=QWidget()
    w.resize(400,200)
    w.setWindowTitle('Calculator')
    label=QLabel(w)
    label.setText('Hi ! Enter the inputs')
    label.move(50, 50)
    label1=QLabel(w)
    label1.setText('Result:')
    label1.move(85,150)

    line1=QLineEdit(w)
    line2=QLineEdit(w)
    line1.move(50,70)
    line2.move(200,70)
    line3=QLineEdit(w)
    line3.move(130, 150)
    line3.setText('0')

    btn1=QPushButton(w)
    btn1.setText('Submit')
    btn1.move(150, 100)
    btn1.clicked.connect(dialog)

    **#now I want to set the return value from dialog to line3**

    w.show()
    sys.exit(app.exec_())

标签: pythonpyqtpyqt4

解决方案


class MyWidget(QWidget):
    def __init__(self, parent=None):
        super(QWidget, self).__init__(parent)
        self.resize(400, 200)
        self.setWindowTitle('Calculator')

        self.line1 = QLineEdit(self)
        self.line2 = QLineEdit(self)
        self.line1.move(50,70)
        self.line2.move(200,70)
        self.line3 = QLineEdit(self)
        self.line3.move(130, 150)
        self.line3.setText('0')

        btn1 = QPushButton(self)
        btn1.setText('Submit')
        btn1.move(150, 100)
        btn1.clicked.connect(self.dialog)

    def dialog(self):
        value1 = int(self.line1.text())
        value2 = int(self.line2.text())
        result = value1 + value2
        self.line3.setText(str(result))

推荐阅读