python - 如何从python代码文件为kivy中的小部件设置id
问题描述
class NavigationDrawer(MDApp):
def build(self):
return Builder.load_string(KV)
def on_start(self):
files=[{"price":"890" , "meter" : "36" , "elevator" : "True"}]
for file in files:
first_base_el = MDCard(size_hint=(1, None), size=(self.root.width,
self.root.height / 4))
second_base_el =BoxLayout(orientation='vertical')
for element in file.keys() :
external_el = MDRectangleFlatButton(
text=f'{element} : {file[element]}',
size_hint=(1, .2)
)
second_base_el.add_widget(external_el)
first_base_el.add_widget(second_base_el)
self.root.ids.container.add_widget(first_base_el)
我收到此错误: self.ids[element] = weakref.ref(external_el) AttributeError: 'NavigationDrawer' object has no attribute 'ids'
解决方案
是的,这是因为不是在行 self.root.ids.container.add_widget(first_base_el)
中,self 指的是 AppClass,然后您正在访问本身就是 appclass 的根。
AppClass 没有任何属性ids
。只有小部件类将具有可访问的 ids 属性
推荐阅读
- python - Python 通过 Tor 连接到 IRC
- jasmine - 如何检查是否在 Jasmine 中使用真值(不是未定义)调用了函数?
- jquery - 如何在 mysql 查询中使用变量?
- python-3.x - 如果满足特定条件,熊猫就会应用价值
- ruby-on-rails - Rails: Webpacker::Manifest::MissingEntryError in Home#index
- java - 如何在纯 Java 控制台应用程序中获取令牌?
- databricks - 如何使用完成编写 databricks 作业的脚本
- fabricjs - 单击它覆盖整个画布的文本对象
- javascript - dataTables.js 与 fileInput.js 冲突
- unity3d - 如何为 IBM Watson unity SDK 自定义文本到语音的语音?