为了账号安全,请及时绑定邮箱和手机立即绑定

从循环中更改多个屏幕的 kivy 小部件属性

从循环中更改多个屏幕的 kivy 小部件属性

湖上湖 2021-06-13 04:16:43
我的应用程序中有一堆屏幕,它们都具有相同的图标,我总是想一起更改这些图标。因此,我目前对其进行了硬编码,每次添加新屏幕时,我都必须添加新行,这变得很麻烦: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/..."或者有没有更好的方法来实现这一点?
查看完整描述

1 回答

?
万千封印

TA贡献1891条经验 获得超3个赞

您必须使用名称getattr()来获取属性。


screen_list = ['tcs_screen', 'eclss_screen', 'gnc_screen']


for e in screen_list:

    getattr(self, e).ids.statusicon.source = "/imgs/..."


查看完整回答
反对 回复 2021-06-15
  • 1 回答
  • 0 关注
  • 189 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信