栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

Kivy:按唯一属性获取小部件ID并访问小部件

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

Kivy:按唯一属性获取小部件ID并访问小部件

其实没有
根据文档,

name
在您的窗口小部件中是一个变量,
id
并且仅仅是窗口小部件引用
weakref
。也许python文档会帮助您了解其工作原理。您要做的是打印
id
,而不是小部件内的变量“
id”。

在kivy文档中,解释了在

kv
解析之后,将id收集到ObservableDict中。该id就像python
dict键一样工作,
id:Widget
但仅在通过dictionary(
ids
)访问时才有效。我认为
kv
解析器只是将所有ID放入字典中,并且只能与它创建的字典一起使用。

Button:    id: test    text: 'self.id'#orButton:    id: 'test'    text: 'self.id'

即使像字符串一样编写,也不会发生任何变化。因此,我希望解析器这样的表现:无论待价而沽整个字后

id:
,转成字符串,追加到一个
ids
字典
<id_string>:Widget_weakref
,忘掉
id
你的
.kv
或只是忽略它,如果它的工作原理
.kv
一次。因此,当直接调用id(而不是像字典一样的d
[key])时,它的行为就像一个空
None
变量。我希望我是对的。

要回答第二个和第三个问题:

如果您的意思是直接通过

id
来访问widget ,那么可以。
MyBox``SimpleLayout

python类:

self.ids.simple_layout

kv MyBox规则:

MyBox:    id: screen_manager    name: 'screen_manager'    BoxLayout:        Label: id: my_label text: 'test'        Button: text: 'button' on_release: self.text = root.ids.my_label.text

但是,无法像python全局变量那样通过其id访问所有小部件,这是不可能的。您需要先访问class / widget,然后再访问其

ids
字典



转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/667961.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号