2016-08-05 19 views
0

Ich habe einen Spinner in Kivy, dass ich nicht scheinen kann, um die Funktion "text_autoupdate" zu bekommen. Die Dokumentation ist hier zu finden: https://kivy.org/docs/api-kivy.uix.spinner.htmlKivy Spinner Autoupdate

Mein Py Code:

from kivy.app import App 
from kivy.uix.widget import Widget 
from kivy.uix.spinner import Spinner 
from kivy.uix.button import Button 
from kivy.properties import ListProperty, BooleanProperty 

class Port_Selection(Widget): # list all serial ports 
    ports = ["[None]"] 
    selection = ListProperty(['hit refresh']) 

    def port_refresh(self): 
     port = ["1","2","3"] 
     if port == []:   # if none found 
      message = {"None"} # return "none" 
      port = message 
     self.ports = port 
     print self.ports 

class SensorTest(Widget): 
    pass 

class Sensor(App): 
    def build(self): 
     return SensorTest() 

if __name__ == '__main__': 
    Sensor().run() 

Und mein .kv Code:

#:kivy 1.0.9 

<Port_Selection>: 
    Spinner: 
     text: 'Select Port' 
     text_autoupdate: True 
     values: root.ports 
     pos: root.x,root.y 

    Button: 
     text: 'Refresh Ports' 
     pos: root.x+100, root.y 
     on_press: root.port_refresh(); 

<SensorTest>: 
    Label: 
     font_size: 45 
     center_x: root.width/2 
     center_y: root.top - 50 
     text: "Sensor Testing" 

    Port_Selection: 
     pos: self.pos 

Wie kann ich die "text_autoupdate" -Funktion einwandfrei funktioniert bekommen?

Antwort

0

Sie haben vergessen, Häfen als Listproperty

Wechsel zu definieren:
ports = ["[None]"]

An:
ports = ListProperty(["[None]"])

+0

Vielen Dank! Ich dachte, es wäre so einfach, ich bin neu für Kivy. – Molorius

+0

@Molorius kein Problem. Willkommen zu kivy, es wird viel Spaß machen :) – EL3PHANTEN