from kivy.app import App
from kivy.lang import Builder
from kivy.properties import DictProperty
kv_file = Builder.load_string("""
#:import pyfile pyfile
ScreenManager:
id: manager
Screen:
GridLayout:
cols:1
rows:5
Button:
text: 'To English'
on_release: app.translation_dict = app.English
Button:
text: 'To Croatian'
on_release: app.translation_dict = app.Croatian
Label:
text:
app.translation_dict['MS First Button']
""")
class MyApp(App):
English = {'MS First Button': 'Take the Quiz'}
Croatian = {'MS First Button': 'Učinite Kviz'}
translation_dict = DictProperty(English)
def build(self):
return kv_file
if __name__ == '__main__':
MyApp().run()
Ваше использование DictProperty просто неправильно, свойства работают только при создании на уровне класса в EventDispatcher.На самом деле это особый тип объекта Python, называемый дескрипторами, вы можете посмотреть, как они работают.
Приведенный выше код является быстрой настройкой, чтобы показать способ выполнения работ, просто в качестве примера.действительного логического потока (не проверено).