如何在.kv文件中传递变量
Posted
技术标签:
【中文标题】如何在.kv文件中传递变量【英文标题】:How to pass variable inside .kv file 【发布时间】:2021-03-16 15:53:58 【问题描述】:我想将 textinput.text 作为参数传递给 root.myfunc(textinput.text) 这样 .py 文件中的函数名 myfunc() 就会得到这个参数,并根据这个参数打印随机列表
这是我的 .py 文件:
import kivy
import random
kivy.require('1.11.1')
from kivy.uix.textinput import TextInput
from kivy.uix.widget import Widget
from kivy.app import App
class myclass(Widget):
a=10
def my_func(self):
randomlist=[]
for i in range(5):
num=random.randint(1,20)
randomlist.append(num)
print(randomlist)
class Myapp(App):
def build(self):
return myclass()
Myapp().run()
这是我的 .kv 文件:
Button:
id:b1
text:"Display"
size:(120,50)
size_hint:(.5,.5)
pos:(130,290)
on_release: root.my_func()
TextInput:
id:t1
size:(170,50)
pos:(130,365)
【问题讨论】:
【参考方案1】:您必须通过其 ID 获取文本输入,然后您可以将其文本属性作为参数传递给您的函数。
kv:
<myclass>
Button:
id:b1
text:"Display"
size:(120,50)
size_hint:(.5,.5)
pos:(130,290)
on_release: root.my_func(t1.text)
TextInput:
id:t1
size:(170,50)
pos:(130,365)
还有python函数:
def my_func(self, text):
randomlist=[]
for i in range(5):
num=random.randint(1,20)
randomlist.append(num)
print(text)
print(randomlist)
【讨论】:
以上是关于如何在.kv文件中传递变量的主要内容,如果未能解决你的问题,请参考以下文章
在 Kivy 中,我如何从另一个以 kv 语言显示的另一个屏幕获取变量
当屏幕在主 .kv 文件中管理时,如何从 .py 文件切换屏幕?
如何在 OSX 上的 Pycharm 中获得 Kivy、.kv、文件的语法高亮显示? [复制]