PyQt:如何动态调用objectNames?

时间:2016-03-17 20:03:37

标签: python loops dynamic pyqt

我创建了9个QPushButtons,其中objectName是E1,E2,E3,...,E9。 现在,我想用数据库中的字符串更新文本字段,所以我想做这样的事情:

query="SELECT evento FROM eventos;"
cur.execute(query)

i=1
for fetch in cur:
    evento=str(fetch)
    objectname="E"+str(i)
    self.objectname.setText(evento)
    i+=1

此循环获取9行(9个字符串)并更新按钮的显示文本。问题是我必须告诉它哪个按钮要更新,我无法弄清楚如何动态地执行它,因为行objectname="E"+str(i)self.objectname.setText(evento)将不起作用,因为AtributeError: 'MyWindowClass' object has no attribute 'objectname'

2 个答案:

答案 0 :(得分:2)

使用getattr()

getattr(self, "E"+str(i)).setText(evento)

答案 1 :(得分:0)

您也可以使用

self.findChild(QtGui.QPushButton, 'E{0}'.format(i)).setText(evento)