Sto facendo del mio meglio per imparare quanto piu possibile da questo primo programma e in base al tempo a mia disposizione, purtroppo in rete trovo molte cose ma non tutto e non sempre comprensibile...
Capisco, spesso è anche per me poco comprensibile ciò che trovo ed ho passate esperienze di confusi tentativi ... tali esperienze mi portano a concordare pienamente con i concetti espressi da @RicPol : così come stai procedendo giri essenzialmente a vuoto.
Se, come appare, se all'inizio della Tua esperienza in merito alla "programmazione" fai tesoro del suggerimento ricevuto, prendi un buon testo in materia e seguilo passo passo, partendo dalle basi (le interfacce grafiche sono argomenti complessi), vedrai che "risparmierai tempo", te lo dice uno che ne ha perso davvero tanto.
In merito al Tuo problema
Comunque ho provato con la riscrittura proposta da nuzzop.
Se eseguo indentazione di return rows differente nel codice della funzione in background non mi restituisce la lettura e "str" ha valore nulla inserendo ugualmente id a db , escludendo l istruzione return vi é ovviamente lo stesso problema mentre lasciando l indentazione invariata esegue correttamente la condizionale ...
guarda che con questa indentazione
Def ctrl (snakeID="") :
Con= sqlite3.connect ("spider.db")
Cur= con.cursor()
i codice che segue "Def ctrl (snakeID="") :" NON fa parte della funzione "ctrl", non ho mai provato a scrivere qualcosa del genere ma credo che NON dovrebbe passare nella interpretazione del codice. Mi lascia molto perplesso ciò che dici, probabilmente vi è un insieme di particolari che mancano.
in merito a
La parte di codice che non é chiara (snaklist.delete(0,End)..............)
É la pulizia delle lista successivo inserimento dei dati "esemplare" appena scritti in database...
Spiega perché non mi è chiara : le Listbox hanno il il metodo "
insert(index, *elements)" (leggi al link) che permette di inserire un ulteriore elemento alla posizione voluta (anche alla fine) e Tu li hai i dati relativi...
Ciao
