在UI元素上使用setattr()

2024-04-25 23:32:56 发布

您现在位置:Python中文网/ 问答频道 /正文

我尝试在UI元素(QLineEdit)上使用setattr来填充从文本文件中读取的内容。我相信为了设置QlineEdit,它应该是self.lineEdit.setText()

我正在读取的文本文件由名称及其值组成:

名称1=值1

拆分线[0]由“名称1”组成,拆分线[1]为“值1”。自我名称1是我要更改的lineEdit的名称,因此我使用eval()将实际值“Name1”传递给setattr。在

我不知道如何设置这个值。现在我尝试了这些,但没有成功:

setattr(self, eval("splitLine[0]"), eval("splitLine[1]"))

setattr(self, eval("splitLine[0]"), setText(eval("splitLine[1]")))

此外,使用:

^{pr2}$

它认为实际对象名为splitLine,而不是它的值(因此我尝试eval())。在

# AttributeError: 'Ui_Dialog' object has no attribute 'splitLine'

Tags: self名称元素ui内容eval文本文件settext
2条回答

不需要evalsplitLine包含字符串,这是第二个参数所需的类型,对于第三个参数来说足够了。在

setattr(self, splitLine[0], splitLine[1])

您需要使用getattr,而不是setattr。也就是说,首先需要获取line edit对象(通过其属性名),这样就可以调用其setText方法来填充字段:

    lineEdit = getattr(self, splitLine[0])
    lineEdit.setText(splitLine[1])

或者在一行中:

^{pr2}$

相关问题 更多 >

    热门问题