Visualizza post

Questa sezione ti permette di visualizzare tutti i post inviati da questo utente. N.B: puoi vedere solo i post relativi alle aree dove hai l'accesso.


Topics - alealex

Pagine: [1]
1
Base / opinione su procedura popolamento entry
« il: Dicembre 04, 2018, 14:41 »
Buongiorno, colgo l'occasione con questo post per presentarmi:  sono un "lettore" da diverso tempo e sono un appassionato di Python da 10 anni ormai. Sto realizzando la conversione per la fatturazione elettronica da un gestionale e mi sono affidato a Python + Tkinter.

Scrivo più che una domanda, una richiesta di conferma che la logica usata sia corretta...

Ovvero, il concetto di popolare Entry in questo modo, cioè aggiungere in una lista
tutte le istanze delle caselle di testo (Entry Tkinter) e caricarle con un ciclo
è corretto secondo voi? Cioè non occupa troppa memoria mettere in una lista le istanze?

scrivo un estratto del codice:

  
import types
  ....
  def aggiungiDati(self):

    # nsDati è una lista definita nelle altre funzioni della classe contenente dati
    nsDati = self.nsDati
   
    # dataEntry è una lista contenente le caselle di testo (definite in altre funzioni della classe)
    # l'elemento vuoto è per saltare un campo nel database in modo da far corrispondere
    # numero del campo con numero della casella di testo ("trucco" realizzato per comodità
    # che comunque NON riguarda la domanda)
    dataEntry = [self.nomeEntry,'',self.cfEntry,self.piEntry,self.capEntry,self.cittaEntry,
                 self.provEntry,self.indirizzoEntry,self.numCivicoEntry,self.datiDichEntry,
                 self.cfDichEntry,self.caDichEntry]

    for x in enumerate(dataEntry):
      if isinstance(x[1], types.InstanceType):
        x[1].insert(0, nsDati[x[0])     


Chiedo perchè inizialmente ho perso tempo per trovare il modo di utilizzare i nomi delle
istanze avendo paura di usare troppa memoria e caricarle come stringhe nella lista (vedi codice a fine post) però poi richiamandole ovviamente non essendo istanze non si poteva "trasformarle" (non esiste un modo, vero?)

Grazie per la vostra opinione

di seguito Il concetto a cui ho lavorato all'inizio.

#Per capirci era: creo una lista con tutte stringhe
    dataEntry = ['self.nomeEntry','','self.cfEntry','self.piEntry','self.capEntry','self.cittaEntry',
                 'self.provEntry','self.indirizzoEntry','self.numCivicoEntry','self.datiDichEntry',
                 'self.cfDichEntry','self.caDichEntry']                 
# e richiamo la stringa dalla lista spacciandola per istanza (non ho trovato però la funzione che lo fa)
   # dataEntry[1].insert(...) --> sarebbe self.cfEntry.insert ma self.cfEntry in questo caso è una stringa

Pagine: [1]