【问题标题】:How to pass variable inside .kv file如何在.kv文件中传递变量
【发布时间】: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)

【问题讨论】:

    标签: python variables widget kivy kivy-language


    【解决方案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)
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-07-31
      • 1970-01-01
      相关资源
      最近更新 更多