我的应用程序中有一堆屏幕,所有的屏幕都有相同的图标,我一直想一起更改。因此,目前我已经对其进行了硬编码,并且每次添加新屏幕时都必须添加新行,并且变得越来越麻烦:
self.tcs_screen.ids.statusicon.source = "/imgs/..."
self.eclss_screen.ids.statusicon.source = "/imgs/..."
self.gnc_screen.ids.statusicon.source = "/imgs/..."
...
是否可以通过循环浏览屏幕列表来执行此操作?我一直在尝试以下操作,但均未成功(如何将变量插入属性分配中?):
ScreenList = ['tcs_screen', 'eclss_screen', 'gnc_screen']
for x in xrange(len(ScreenList)):
self.ScreenList[x].ids.statusicon.source = "/imgs/..."
还是有更好的方法来做到这一点?
谢谢
答案 0 :(得分:1)
您必须使用getattr()
来使用名称来获取属性。
screen_list = ['tcs_screen', 'eclss_screen', 'gnc_screen']
for e in screen_list:
getattr(self, e).ids.statusicon.source = "/imgs/..."