Pyside:QLineEdit接受多个输入

时间:2017-02-13 19:44:42

标签: python python-3.x pyside qlineedit

我在Qt Designer中开发了一个GUI,用户可以在QLineEdit中输入两个值,当用户点击输入时,它会执行一些数学计算。

问题是一旦输入值并在输出后按下输入我无法输入QLineEdit的输入,但每次都必须重新启动GUI。这是我的代码:

    def entervalues(self):
        if self.RotationEdit.text() != "" and self.TiltEdit.text() != "":
            self.RotationEdit = str(self.RotationEdit.text())
            self.TiltEdit = str(self.TiltEdit.text())
            self.pass_arguments.emit("self.RotationEdit","self.TiltEdit")
        else:
            QMessageBox.information(self, "Error","No Values Entered")

如果我尝试输入值并按Enter键,则会发出属性错误。

    line 100, in entervalues
    if self.RotationEdit.text() != "" and self.TiltEdit.text() != "":
    AttributeError: 'str' object has no attribute 'text'

enter image description here

1 个答案:

答案 0 :(得分:1)

问题出现在您的代码中,您正在更改对象self.RotationEdit

self.RotationEdit = str(self.RotationEdit.text())

当你最初宣布这是一个QLineEdit时,你会分配一个字符串。当您重用它时,它仍然是字符串,因此未定义text()函数。我建议创建一个新变量,其中包含您将在另一个函数中使用的值。

def entervalues(self):
    if self.RotationEdit.text() != "" and self.TiltEdit.text() != "":
        self.pass_arguments.emit(self.RotationEdit.text(),self.TiltEdit.text())
    else:
        QMessageBox.information(self, "Error","No Values Entered")