0
язык Kv есть способ импортировать имена из других файлов, используя следующий синтаксис:Как перенести переменную из .py-файла в файл .kv?
#:import name x.y.z
# The same as `from x.y import z as name` in Python code
Но это не говоря уже о том, как импортировать значения из того же модуля, где этот язык используется киловольт.
Скажем, у меня есть следующий код:
from kivy.app import App
from kivy.lang import Builder
from kivy.atlas import Atlas
from kivy.uix.button import Button
theme = Atlas('path/to/atlas')
Builder.load_string('''
<MyWidget>:
background_normal: theme['widget_bg']
''')
class MyWidget(Button):
pass
class TestApp(App):
def build(self):
return MyWidget()
TestApp().run()
Я хотел бы импортировать theme
объект Atlas в код киловольтного установить правильный фон. Как это можно сделать?
попробуйте использовать 'root.theme' в файле .kv везде, где вам нужно использовать эту переменную. –
@GeorgeBou 'root' относится к текущему корневому виджету, я не думаю, что он имеет какое-либо отношение к глобальному пространству имен – Leva7
, вы также можете передать глобальную переменную в виджетах ... разве это не работает для вас? –