python - Pyside:QLineEdit 接受多个输入

标签 python python-3.x pyside qlineedit

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

问题是,一旦输入值并在输出后按下 Enter 键,我就无法在 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

最佳答案

问题出现在您的代码中,您正在更改对象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")

关于python - Pyside:QLineEdit 接受多个输入,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42212270/

相关文章:

audio - 在 Python 3 上播放音频文件(mp3、wav 等)的跨平台方式?

qt - PyQt:如何设置 QTreeView 的行高

python - PySide:设置 QVBoxLayout 的宽度

python - 如何在 headless 脚本中使用QProcess?

python - 按列分组并为 group by 中使用的特定列分配不同的聚合函数

python - 如何在协议(protocol)上定义具有协变返回类型的可调用属性?

python - 使用Python类将数据写入xls

python - 如何在私信中发送图片?

python - 如何使用 Boto3 按上次修改日期过滤 s3 对象

python - 如何在python中初始化一个集合并打印一个空集合{}?