2017-01-01 6 views
1

Вот базовый пример, с которым я работаю. Ярлык отображается так, как я ожидал бы, но текст никогда не изменяется, хотя я вижу инструкции печати на консоли, показывающие, что Clock.schedule_interval - , указывая. Любые мысли о том, что пошло не так ???Попытка изменить текст ярлыка в Kivy, и он никогда не меняется

Спасибо и с Новым Годом!

Сначала .kvlang файл

<Demo>: 
    button_text: my_button 
    BoxLayout: 
     Label: 
      id: my_button 
      text: 'Initial Text!' 

И мой Python.

from kivy.app import App 
from kivy.uix.boxlayout import BoxLayout 
from kivy.properties import ObjectProperty, StringProperty 
from kivy.clock import Clock 
import random 



class Demo(BoxLayout): 
    button_text = ObjectProperty 

    def change_text(self, dt): 
     self.button_text.text = str(random.randint(1, 10)) 
     print('Should have changed button text to {}'.format(self.button_text.text)) 

    def start(self): 
     Clock.schedule_interval(self.change_text, 10) 

class TutorialApp(App): 
    def build(self): 
     foo = Demo() 
     foo.start() 
     return Demo() 

if __name__ == "__main__": 
    TutorialApp().run() 

ответ

1

Вы отсутствуют скобка

button_text = ObjectProperty 

изменение

button_text = ObjectProperty(None) # Ha! :) 

Кроме того, вы должны вернуть Foo и не создать еще один Demo

def build(self): 
    foo = Demo() 
    foo.start() 
    #return Demo() change to... 
    return foo 

С последним Демонстрация не будет обновляться ...

+0

И вы правы: Глупо пропустить создание объекта в начале! Спасибо за помощь – Craig

 Смежные вопросы

  • Нет связанных вопросов^_^