ich habe hier ein Code Schnipsel, welches offensichtlich nicht so funkioniert wie es sollte.
Code: Alles auswählen
class ScanDialog(gtk.Dialog):
def __init__(self, parent, device):
self.dev = device
gtk.Dialog.__init__(self, "Scan finger", parent,
gtk.DIALOG_MODAL | gtk.DIALOG_DESTROY_WITH_PARENT, None)
self.set_has_separator(False)
self.text_label = gtk.Label("Scan your finger now")
self.vbox.pack_start(self.text_label)
self.vbox.show_all()
def enroll(self):
thread.start_new_thread(self.enroll_runner, (None,))
gtk.Dialog.run(self)
return (self.fp, self.fp_img)
def enroll_runner(self, void_arg):
(self.fp, self.fp_img) = self.dev.enroll_finger()
self.response(1)
Die Funktion "enroll()" startet einen Thread in dem die Funktion "enroll_runner()" aufgerufen wird, welche wiederum die Attribute "ip" und "ip_img" der Klasse "ScanDialog" setzt. Bevor aber die Attribute gesetzt werden können läuft der Code in der "enroll()" Funktion weiter und wenn die entsprechenden Attribute an die aufrufende Funktion zurückgegeben werden sollen gibt es folgende Fehlermeldung.
Code: Alles auswählen
Traceback (most recent call last):
File "pyfprint_demo.py", line 219, in enroll
(fp,img) = dlg.enroll()
File "pyfprint_demo.py", line 66, in enroll
return (self.fp, self.fp_img)
AttributeError: 'ScanDialog' object has no attribute 'fp'
Und was macht eigentlich dieses "self.response(1)" am Ende der "enroll_runner()" Funktion (kann dazu keine Dokumentation finden)?
Vielen Dank!