2016-07-26 14 views
0

Ich schreibe eine GUI in Linux mit Kivy und Python. Das Programm sollte ein USB-Gerät erkennen und das Gerät verwenden, um ein Bild zu einem Ziel zu programmieren. Hier sind ein Schnipsel meines Codes:kivy .bind Ergebnisse in AssertionError: '' ist nicht aufrufbar

Dies sind die Codes, die ich versuche, USB-Gerät zu erkennen. Dies ist in einer Datei, nennen wir es A.py.

Wenn ich das Programm ausgeführt habe, trat Assertion Fehler beim Erstellen einer Instanz von ProgJTAG. Dies wird in einer separaten Datei ProgJTAG.py wie folgt definiert:

class ProgJTAG(BoxLayout): 
    usb_bus = StringProperty('') 
    usb_dev = StringProperty('') 
    usb_vendor = StringProperty('') 
    usb_product = StringProperty('') 

    def __init__(self, _usb_bus, _usb_dev, _usb_vendor, _usb_product, dev): 
      super(ProgJTAG, self).__init__() 

      self.usb_bus = _usb_bus 
      self.usb_dev = _usb_dev 
      self.usb_vendor = str(_usb_vendor) 
      self.usb_product = str(_usb_product) 
      self.bind(usb_bus=self.usb_bus) 
      self.bind(usb_dev=self.usb_bus) 
      self.bind(usb_vendor=self.usb_bus) 
      self.bind(usb_product=self.usb_bus) 

Der Fehler tritt aus der Leitung self.bind (usb_bus = self.usb_bus). Die Fehlermeldung ist Datei "_event.pyx", kivy._event.EventDispatcher.bind (Kivy/_event.c: 5536) AssertionError: '' ist nicht aufrufbar

Q1. Kann jemand helfen, was die Behauptung bedeutet?

Q2. Ich habe festgestellt, dass die _usb_bus und _usb_dev sind leere Zeichenfolge. Wird diese Behauptung durch die Tatsache verursacht, dass die _usb_bus und _usb_dev leere String-Eigenschaft daher nicht aufrufbar sind?

Antwort

0

Ja, wenn Sie binden müssen Sie eine Funktion übergeben, weil die Bindung versuchen wird, sie später aufzurufen.

Verwandte Themen