java 部件属性,在单独的.kv文件中为小部件创建属性

我正在学习写Kivy应用程序 . 我创建了一个由两个网格布局组成的玩具应用程序 . 一个包含两个按钮,另一个包含两个标签 . 任务是在单击按钮时修改标签 . 通过简单地以标准方式创建id和属性,当所有布局都在同一个.kv文件中时,我就能够做到这一点 .

当我将布局拆分为单独的.kv文件时,我无法做同样的事情 . 我想这样做,因为我实际工作的项目太复杂,无法包含在单个.kv文件中 . 所以这是我的代码:

主python代码:

# filename DynamicApp.py

import kivy

kivy.require('1.9.0')

from kivy.app import App

from kivy.uix.relativelayout import RelativeLayout

from kivy.lang import Builder

Builder.load_file("myfirstgrid.kv")

Builder.load_file("mysecondgrid.kv")

class DynamicWidgets(RelativeLayout):

pass

class DynamicApp(App):

def build(self):

return DynamicWidgets()

if __name__ == "__main__":

DynamicApp().run()

基础kivy文件:

# File name: DynamicApp.kv

#:kivy 1.9.0

:

MyFirstGrid:

MySecondGrid:

第一个网格的kivy

# File name: myfirstgrid.kv

#:kivy 1.9.0

id: _my_first_grid

rows: 1

cols: 2

Label:

id: _label_1

text: "Hello World"

Label:

id: _label_2

text: "Hello World"

Kivy为第二个网格

# File name: myseoncdgrid.kv

#:kivy 1.9.0

#:import mybutton mybutton

size_hint: 0.25, 0.25

pos_hint: {'center_x': 0.5, 'y' : 0}

rows: 1

cols: 2

MyButton:

text: 'Do it'

label_1: _label_1

MyButton:

text: 'Do it Again'

label_2: _label_2

mybutton.py控制按钮操作,这里没有显示,因为我无法在MyButton小部件中创建属性和引用,因为它给了我错误 NameError: name '_label_2' is not defined .

我做了完全相同的策略,但所有kv在一个文件中,它很好 .

如何为其他.kv文件中的窗口小部件创建引用和属性 .

我觉得我错过了一些基本的东西 .

谢谢

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值