2014-11-24 2 views
0

Я хотел сделать программу kivy, которая получает номер из текстового ввода, добавляет его к номеру и записывает в Label.kivy добавление переменных в корневой виджет

Но программа не приняла мою переменную как часть корневого виджета.

Вот программа:

import kivy 
from kivy.app import App 
from kivy.uix.scatter import Scatter 
from kivy.uix.label import Label 
from kivy.uix.floatlayout import FloatLayout 
from kivy.uix.textinput import TextInput 
from kivy.uix.boxlayout import BoxLayout 
from kivy.properties import * 
from kivy.graphics.vertex_instructions import * 
from kivy.graphics.context_instructions import * 

kivy.lang.Builder.load_string(''' 
<my_layout>: 
    orientation: 'vertical' 
    canvas: 
     Color 
      rgba: 10, 10, 0, 1 
    Label: 
     id: label0 
     text: 'Wie viel Wiegt das Ei in gramm?' 
     font_size: 50 


    TextInput: 
     id: my_textinput 
     font_size: 100 
     size_hint_y: None 
     height: 100 
    Button: 
     id: my_button 
     height: 100 
     text: 'button' 
     canvas: 
      Color: 
       rgba: 0, 0, 20, 1 
     on_press: root.berechnen(my_textinput.text) 
    Label: 
     id: label1 
     text: root.var 
''') 

class my_layout(BoxLayout): 
    def __init__(self, **kwargs): 
     super(my_layout,self).__init__(**kwargs) 
     self.var = self.number 
    def berechnen(self, txt): 
     self.number = txt 

class Add(App): 
    def build(self): 
     return my_layout() 

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

ответ

2

Вы устанавливаете self.var, но это не kivy свойство поэтому графический интерфейс не знает, что изменилось и не устанавливает свойство.

Вы могли бы вместо того, чтобы сделать

from kivy.properties import StringProperty 

class my_layout(BoxLayout): 
    var = StringProperty('') 

и в противном случае продолжить то же самое.

Он также выглядит так, как будто ваш код выйдет из строя, потому что вы не устанавливаете self.number, но вы действительно обращаетесь к нему. Возможно, это ошибка при вставке вашего примера.

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