stix77
Profilo di
Nome | stix77 |
---|---|
Indirizzo email | n/a |
Messaggi | 113 |
-
- 2019-06-21 16:49:47
- Re: passaggio di elementi tra funzioni
- Forum >> Principianti
- questo script
def A(): lista = [] lista.append("ciao") return lista[ 0 ] def B(): print(A()) B()
ha come output "ciao"
-
- 2019-02-27 19:36:54
- Re: programmazione ad oggetti con Tkinter
- Forum >> Programmazione Python >> GUI
- RicPol said @ 2019-02-27 17:23:29:Uhm, qualche osservazione sparsa.
Primo, una finestra con 50 textbox è la morte della user experience (e probabilmente anche la morte dell'user).
Secondo, in qualche modo *devi* cominciare a usare le classi per organizzare quel codice... non puoi certo continuare a sbattere tutto a livello di modulo. Una buona padronanza dei principi dell'OOP è fondamentale per scrivere gui.
Terzo, non è che ti danno dei punti premio se scrivi codice più corto. Si fattorizza se ha senso farlo, e se si capisce perché lo si sta facendo. Se tutto ciò che ottieni usando un ciclo for è poter dire a te stesso "guarda come sono cool, ho usato un ciclo for per risparmiare cento righe di codice", allora non vale la pena. Il problema delle 50 caselle è un problema di componentistica OOP, non di come fare a risparmiare righe di codice.
Quarto, non usare il posizionamento assoluto, usa i sizer.
Quinto, certamente *puoi* fare un ciclo for che ti produce e ti posiziona 50 caselle e 50 etichette, *ma allora* devi anche usare una struttura-dati parallela (che so, una lista), dove conservare un riferimento alle 50 caselle... perché poi suppongo che dovrai accedervi in un secondo momento per leggerne il valore, no? E se ti limiti a fare una cosa del tipo:
for _ in range(50): tb = Text(bla bla) tb.place(bla bla)
allora ovviamente a ogni ciclo perdi il riferimento alla casella che hai appena piazzato.
la questione è che ho circa 30 caselle di input che mi restituiscono 20 caselle di output. ho già fatto qualcosa di simile ma qui che sono arrivato a implementare 6 caselle, mi sono reso conto che il codice stava diventando veramente lungo (anche perchè contiene formule, grafici, ecc) e volevo renderlo più leggibile con l'oop, ma non facendolo di professione è tutto molto ostico..
-
- 2019-02-27 19:30:49
- Re: programmazione ad oggetti con Tkinter
- Forum >> Programmazione Python >> GUI
- Daniele aka Palmux said @ 2019-02-27 16:17:29:stix77 said @ 2019-02-27 16:00:23:grazie per il suggerimento... male che andava stavo anch'io pensando alla funzione, però in effetti il ciclo for mi risparmierebbe ancora maggiormente righe di codice da scrivere
adesso ci provoProvaci, poi torna qui se non ti viene qualcosa che ci proviamo insieme.
Cya
allora ho provato a buttare giù il codice ma mi sono incartato nel senso che non riesco a passare correttamente i dati nel ciclo for
from tkinter import * finestra = Tk() w, h = finestra.winfo_screenwidth(), finestra.winfo_screenheight() finestra.geometry("%dx%d+0+0" % (w, h)) finestra.title("title") dati1 = ["capacità annua impianto",20,40,200,40,"Ton/anno",300,40] dati2 = ["capacità oraria impianto",420,40,640,40,"kg/h",740,40] dati3 = ["calore di reazione",420,70,640,70,"kcal/h",740,40] for i in range(1,4): nameObject = "label"+str(i) nameObject = Label(finestra, text= dati1[0 ]) nameObject.place(x = dati1[1 ], y = dati1[2 ]) nameObject = Text(finestra, height = 1, width=10) nameObject.place(x = dati1[3 ], y = dati1[4 ]) nameObject = Label(finestra, text=dati1[5 ]) nameObject.place(x = dati1[6 ], y = dati1[7 ]) finestra.mainloop()
finora ho scritto quanto sopra, ho provato a creare 3 textbox e funziona solo con la prima, non riesco a fargli flottare le liste di dati all'interno del ciclo for
se ci provo con un generico dati=dati+str(i) poi all'interno del ciclo dati1 non lo riconosce come la lista che ho scritto prima del ciclo perchè ad esempio dati1[1 ] non è 20 ma per lui è "a" cioè mi indicizza la stringa
-
- 2019-02-27 16:00:23
- Re: programmazione ad oggetti con Tkinter
- Forum >> Programmazione Python >> GUI
- grazie per il suggerimento... male che andava stavo anch'io pensando alla funzione, però in effetti il ciclo for mi risparmierebbe ancora maggiormente righe di codice da scrivere
adesso ci provo
-
- 2019-02-27 14:41:38
- programmazione ad oggetti con Tkinter
- Forum >> Programmazione Python >> GUI
- mi servirebbe una mano, non riesco a programmare ad oggetti con tkinter.
mi spiego meglio: attualmente per inserire una label e una textbox utilizzo 4 linee di codice che sono le seguenti
label000A = Label(finestra, text="capacità annua impianto") label000A.place(x = 20, y = 40) textBox000 = Text(finestra, height=1, width=10) textBox000.place(x = 200, y = 40)
e tutto funziona.
il problema è che per comporre un'interfaccia che abbia 50 di quei campi, mi ritrovo a scrivere 50 x 4 = 200 righe di codice quando ne potrei scrivere solo 1 per oggetto passando tutti gli argormenti, tipo:
oggetto1 = campo("capacità annua impianto",1,10,200,40)
il problema è che non riesco a scrivere il codice della classe.. ho provato in mille modi
c'è un anima pia che mi potrebbe aiutare?
grazie
-
- 2019-02-24 10:28:24
- Re: Esercizio confronto elementi di stringhe
- Forum >> Principianti
- eh be, non ha senso mettere la lista fuori dalla funzione se poi non viene usata. anzi è proprio se viene usata anche al di fuori che si rischia di far casino. la lista va messa dentro la funzione così nasce e muore li senza possibilità di utilizzi promiscui... mea culpa
-
- 2019-02-23 13:56:42
- Re: Esercizio confronto elementi di stringhe
- Forum >> Principianti
- fatto
dovrebbe essere a posto
https://pastebin.com/LJ6fVvyU
non sapevo si potesse fare anche così, ho imparato una cosa nuova
-
- 2019-02-22 19:48:06
- Re: Esercizio confronto elementi di stringhe
- Forum >> Principianti
- @A
di nulla... almeno mi esercito e imparo anch'io
@RicPol
adesso purtroppo non ho tempo, dopo proverò a fare quello che hai detto.
però mentre per il secondo consiglio ci sono arrivato, non saprei così su due piedi come confrontare due liste senza annidare due cicli for. capisco che far come ho fatto io è un dispendio di risorse per la macchina, perchè alla fine se son ad esempio due stringhe da 10 caratteri l'una, invece di far 10 operazioni così facendo ne faccio 100.
dopo ci provo
ciao a tutti
-
- 2019-02-22 17:54:30
- Re: Esercizio confronto elementi di stringhe
- Forum >> Principianti
- Ciao A, se sei proprio incartato prova a dare un occhio a come l'ho svolto io, qui sotto nel link trovi il mio codice commentato
https://pastebin.com/RJJGkaeU
non l'ho postato direttamente per non "spoilerartelo"
-
- 2019-02-22 16:38:07
- Re: Esercizio confronto elementi di stringhe
- Forum >> Principianti
- vuoi provare a farlo insieme? vuoi iniziare tu? vuoi un suggerimento?