2015-08-19 2 views
3

Я новичок в Kivy, и поскольку я не могу практиковать на PySide (некоторые динамические библиотеки сломаны или я не знаю, что), я хочу попробовать этот огромный инструмент.Как получить значение textinput с Kivy

Я потерял прямо сейчас, я пытался сделать так: Get textinput value in Kivy app

Но я не делаю это таким же образом:

<ProduitScreen>: 
    GridLayout: 
     rows: 3 
     cols: 2 
     padding: 10 
     spacing: 10 
     Label: 
      font_size: 20 
      text: 'Nom du produit' 
     TextInput: 
      font_size: 20 
      id: nom 
     Label: 
      font_size: 20 
      text: 'Prix' 
     TextInput: 
      font_size: 20 
      id: prix 
     Button: 
      text: 'Ajouter' 
      on_press: self.ajouter() 
     Button: 
      text: 'Quitter' 
      on_press: root.manager.current = 'menu' 

Таким образом, кнопка с полем текст наполнен «Ajouter» должен позволить мне получить значение обоих полей и добавить их в список, но:

AttributeError: 'Button' object has no attribute 'ajouter' 

и в моем классе это определяется так:

class ProduitScreen(Screen): 
    def ajouter(): 
     print "%s au prix de %d a ete ajoute" % (self.nom.txt , float(self.prix.txt)) 

Может ли кто-нибудь сказать мне, как это сделать?

EDIT: blackquote не сохраняет отступы, так что полный код http://pastebin.com/W1WJ8NcL

ответ

2

ajouter метод является членом ProduitScreen не Button, так что вы должны использовать root обратиться к нему:

Button: 
     text: 'Ajouter' 
     on_press: root.ajouter() 

исправление ошибок на вашем определении ajouter:

class ProduitScreen(Screen): 
    def ajouter(self): 
     print "%s au prix de %f a ete ajoute" % (self.nom.text , float(self.prix.text)) 

Для того, чтобы использовать nom и prix внутри кода питона, добавьте в код кВ:

<ProduitScreen>: 
    nom: nom 
    prix: prix 
+0

Спасибо много. –

+0

приветствуется :) –

+0

Это определенно работает! Какую функцию я могу вызвать с помощью on_press для выхода из приложения? (универсальная функция для android, unix, windows и т. д.) –

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