Forum >> Programmazione Python >> GUI >> Domanda per Daniele

Pagina: Indietro 1 2

Daniele aka Palmux said @ 2018-10-25 01:53:19:
Beh, sono sprovvisto di sfere di cristallo, posta il codice ed eventuali errori.

Cya

come succede spesso la notte porta consigli e stamani fatto una prova ed ho "aggirato" il problema
in pratica poco fa ho inserito il codice della funzione direttamente nel ciclo for ed il tutto funziona come mi aspettavo che funzionasse inizialmente
import tkinter as tk
from PIL import ImageTk, Image
import time

# def change():
#     img = ImageTk.PhotoImage(Image.open(str(n) + ".jpg"))
#     lbl.configure(image=img)
#     lbl.pack()
#     root.update()
#     time.sleep(1)
    
root = tk.Tk()
lbl = tk.Label(root)

for n in range(1, 5):
    # change()
    img = ImageTk.PhotoImage(Image.open(str(n) + ".jpg"))
    lbl.configure(image=img)
    lbl.pack()
    root.update()
    time.sleep(1)

root.mainloop()
ps beh in effetti non ritorna nessun errore, ma rimane comunque la domanda: come mai se nel ciclo for inserisco "solo" il nome della funzione e decommento la stessa l'ultima finestra tkinter rimane senza immagine?



--- Ultima modifica di pypy in data 2018-10-25 08:32:55 ---
ps beh in effetti non ritorna nessun errore, ma rimane comunque la domanda: come mai se nel ciclo for inserisco "solo" il nome della funzione e decommento la stessa l'ultima finestra tkinter rimane senza immagine?

Perché per come hai realizzato il codice, alla funzione non passi i dati necessari per completare l'operazione. Fai un esercizio di stile e ripensa il codice con la modifica che ho suggerito prima, cioè passare alla funzione il nome dell'immagine da cambiare.

Prova, sperimenta, sporcati le mani scrivendo del rude codice e torna vittorioso.

Cya

Daniele aka Palmux said @ 2018-10-25 09:46:48:
Perché per come hai realizzato il codice, alla funzione non passi i dati necessari per completare l'operazione. Fai un esercizio di stile e ripensa il codice con la modifica che ho suggerito prima, cioè passare alla funzione il nome dell'immagine da cambiare.

Prova, sperimenta, sporcati le mani scrivendo del rude codice e torna vittorioso.

Cya


Daniele grazie come sempre della risposta

sottolineo il fatto che il codice anche se inserito nel "def" funziona

infatti le immagini cambiano ma dopo l'ultima la finestra tk compare vuota

Io inserendo le immagini in una lista l ultima immagine mi compare vi posto il mio codice tra poco
Comunque la prima immagine dove definisco la label la tengo fuori dal ciclo for più specificatelamente prima del ciclo e così mi esce l ultima immagine prova così pypy
Comunque la prima immagine dove definisco la label la tengo fuori dal ciclo for più specificatelamente prima del ciclo e così mi esce l ultima immagine prova così pypy
ciao snoop

il codice che ho postato all'interno del ciclo for funziona perfettamente

è il codice commentato all'interno della funzione che non capisco

come mai anche se è lo stesso codice si ha un risultato diverso

app = Tk()
lm = Label()
def change_image():
    tempd = Image.open("teo.jpg")
    photo2 = ImageTk.PhotoImage(tempd)
    imp.config(image=photo2)
    imp.image = photo2
temp = Image.open("file01.jpg")
photo = ImageTk.PhotoImage(temp)
imp = Label(app,image=photo)
change_image()
imp.pack()
app.mainloop()
Io prima configuro la pfima immagine nella label e poi dopo inizio il ciclo for iterando le immagini dalla seconda fino alla fine attraverso il metodo change() con label.configure tu invece sia per la prima immagine e sia per le altre utilizzi label.configure non ti posto il codice completo perché scrivo da smartphone mentre lo script è sul pc
Io prima configuro la pfima immagine nella label e poi dopo inizio il ciclo for iterando le immagini dalla seconda fino alla fine attraverso il metodo change() con label.configure tu invece sia per la prima immagine e sia per le altre utilizzi label.configure non ti posto il codice completo perché scrivo da smartphone mentre lo script è sul pc
ma è sempre lo stesso snoop, il problema persiste.




non ho capito se sia update oppure altro che crea il problema provo ma non trovo la soluzione :angry: chissà forse è normale cosi?


--- Ultima modifica di pypy in data 2018-10-26 16:09:12 ---
nessuna idea o suggerimento ?


--- Ultima modifica di pypy in data 2018-10-28 08:13:49 ---


Pagina: Indietro 1 2



Esegui il login per scrivere una risposta.