您好, 欢迎来到 !    登录 | 注册 | | 设为首页 | 收藏本站

如何从Kivy文件(.kv)访问不同类别的ID /小部件?

如何从Kivy文件(.kv)访问不同类别的ID /小部件?

好吧,看来我自己找到了答案,我想分享一下。

首先,让我们在dates_test.kv文件中输入“ id”。这样您就可以使用python代码或.kv文件访问它们。

<Get_People>:
    stuff_p: root_lbl
    ...
    Get_Boys:
        id: gb
    Get_Girls:
        id: gg

<Get_Boys>:
    stuff_b: label_b

<Get_Girls>:
    stuff_c: label_g

它们是在自己的类中定义的ObjectProperty。当您链接到kivy文件时,您在python代码中的stuff_b中所做的更改将在label_b中进行更改。

class Get_People(@R_448_2419@Layout):
    stuff_p = ObjectProperty(None)
    ...

class Get_Boys(@R_448_2419@Layout):
    stuff_b = ObjectProperty(None)
    ...

class Get_Girls(@R_448_2419@Layout):
    stuff_c = ObjectProperty(None)
    ...

如果释放具有ID:button_b(Get_Boys类)的按钮,则必须更改具有ID:label_g(Get_Girls类)的Label。

如果按下ID为:button_b的Button(Get_Boys类),则ID为root_lbl的Label(Get_People类)必须更改。

在Get_Boys类(test.py)中定义这些方法

def change_girl(self):

    self.parent.ids.gg.stuff_c.text = "Boys changed Girls!"
    #self.stuff_b.text = "i changed myself!"

def change_people(self):
    self.parent.ids.root_lbl.text = "Boys changed people!"

让我们看看这里发生了什么…

并在.kv文件

<Get_Boys>:
    stuff_b: label_b
    Button:
        id: button_b
        text: "button 1"
        on_release: root.change_girl()
        on_press: root. change_people()

3. 如果发布了ID为:root_btn(Get_People类)的Button,则ID为:label_b(Get_Boys类)的Label必须更改。

在Get_People类(test.py)中定义一个方法

def rooted(self):
    self.ids.gb.stuff_b.text = "people changed boys!"

并在.kv文件

Button:
    id: root_btn
    text: "I am Root"
    on_release: root.rooted()
其他 2022/1/1 18:39:48 有458人围观

撰写回答


你尚未登录,登录后可以

和开发者交流问题的细节

关注并接收问题和回答的更新提醒

参与内容的编辑和改进,让解决方法与时俱进

请先登录

推荐问题


联系我
置顶