为什么 kv 文件变量不接受 self?

Why don't the kv file variables accept self?

文件的kv变量如何使用self引用文件的py变量?

事实是,App仅在类中是固有的,在函数中是自有的。

kv 文件变量只接受 app:

'''
MDFlatButton:
    id: flat
    text: app.gg
'''

但我需要它像这样工作:

class Test(MDApp):
    gg = '123'
MDFlatButton:
    id: flat
    text: self.gg
class Test(MDApp):
    def build(self):
        gg = '123'

要在函数内部引用一个变量,你需要self,它不接受kv。问题:如何让它工作而不报错?

MDFlatButton: 
    id: flat 
    text: self.gg

或者其他东西,但是 MDFlatButton 按钮从函数中获取文本参数。

求助(

你可以使用 root

MDFlatButton: 
    id: flat 
    text: root.gg

第二个错误是你没有把它设置为自己。

class Test(MDApp):
    def build(self):
        self.gg = '123' # <---- was gg = '123'

转出!这对我有用:

from kivymd.app import MDApp
from kivy.lang import Builder
KV = '''
Screen:
    MDFlatButton:
        id: flat
        text: app.gg
'''
class Test(MDApp):
    def build(self):
        self.gg = '555'
        return Builder.load_string(KV)
Test().run()

不知道我做了什么,但这个工作