Forum >> Programmazione Python >> GUI >> Entry non valorizza le variabili!!!!!

Pagina: 1

Salve ho questa parte di codice che dovrebbe accettare attraverso l' Entry un input da utente e poi stamparlo, solo che il get è come se non ci fosse e quando vado a questo punto a stampare quello che viene passato all'entry mi stampa entry.!, non riesco a capire perchè il get non mi prende l'input da utente e me lo mette nella variabile per poter essere poi utilizzata......AIUTO!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!



from tkinter import *




top = Tk()
top.title("REGISTER FORM")
top.geometry("400x400+120+120")
top.resizable(0, 0)
label_spiegazioni = tk.Label(top, text='Primo avvio bisogna registrare un utente, usando user e password , \n alla fine click sul tasto registra e il nuovo utente sarà attivo, \n inserire i dati nella schermata login.', bg='aqua', relief= RAISED)
label_spiegazioni.place(rely=0.01, relx=0.05, relheight=0.14, relwidth=0.90)
labeluser = tk.Label(top, text='USER', bd=5, bg='#7fffd4', relief=RAISED)
labeluser.place(rely=0.40, relx=0.01, relwidth=0.29, relheight=0.15)
user = Entry(top, font=40, bd=5, relief=GROOVE)
user.place(rely=0.40, relx=0.31, relwidth=0.60, relheight=0.15)
labelpass = tk.Label(top, text='PASSWORD', bd=5, bg='#7fffd4', relief=RAISED)
labelpass.place(rely=0.60, relx=0.01, relwidth=0.29, relheight=0.15)
passw = Entry(top, font=40, bd=5, relief=GROOVE)
passw.place(rely=0.60, relx=0.31, relwidth=0.60, relheight=0.15)
nome = user.get()
parola = passw.get()

print(nome)
print(parola)
button1 = Button(top, text="Registra")
button1.pack()
button1.place(rely=0.89, relx=0.33, relheight=0.10, relwidth=0.29 )

top.mainloop()
Ciao caro, non è che non vengono valorizzate le variabili, è solo un problema di tempistica.

Infatti nel momento in cui accedi al valore dei due Entry(), questi sono stati appena creati, senza nessuna interazione da parte dell'utente.

Risolvi tutto facilmente creando un evento, che alla pressione del pulsante o all'uscita dal campo o quello che preferisci, ti valorizza le variabili che ti interessano.

Cya

Daniele aka Palmux said @ 2019-07-20 14:50:49:
Ciao caro, non è che non vengono valorizzate le variabili, è solo un problema di tempistica.

Infatti nel momento in cui accedi al valore dei due Entry(), questi sono stati appena creati, senza nessuna interazione da parte dell'utente.

Risolvi tutto facilmente creando un evento, che alla pressione del pulsante o all'uscita dal campo o quello che preferisci, ti valorizza le variabili che ti interessano.

Cya
Grazie, per evento intedi una funzione???? e sai indirizzarmi dove pèoter capire come creare l 'uscita da un campo, per poter rendere attive le entry?????
Per evento intendo questo, prendi spunto da quello e vedrai che ci riesci.

Cya
Scusami ma non sono riuscito a capire :(, ho provato a ricopiare il primo codice per capire ma in run su python mi da errore nel modulo print , volevo solo sapere come validare le entry spostandomi o uscendo da loro, ho trovato focus o validate ma tutti test che ho eseguito non le hanno validate

Ti ringrazio per l' aiuto che mi stai dando
Nick
Aspetta allora, facciamo un passo indietro.

Non puoi sperare che io o chiunque altro disposto ad aiutarti, possa indovinare:
- Che versione del linguaggio usi;
- Che versione della libreria;
- Su che SO ti stai muovendo;
- Capire gli errori che ricevi se non li posti.

Detto questo torniamo al tuo problema e semplifichiamo tutto (provato con Python 3.7).
import tkinter as tk


def callback(event):
    print(entry.get())

#Base
master = tk.Tk()
entry = tk.Entry(master)
button = tk.Button(master, text="Premimi")

#Eventi
button.bind("<Button-1>", callback)

#Pack
entry.pack()
button.pack()

#Loop
master.mainloop()
Nel terminale vedrai stampato quanto digitato nell'Entry(), puoi farci quello che vuoi a questo punto.

Cya
Daniele aka Palmux said @ 2019-07-20 18:16:35:
Aspetta allora, facciamo un passo indietro.

Non puoi sperare che io o chiunque altro disposto ad aiutarti, possa indovinare:
- Che versione del linguaggio usi;
- Che versione della libreria;
- Su che SO ti stai muovendo;
- Capire gli errori che ricevi se non li posti.

Detto questo torniamo al tuo problema e semplifichiamo tutto (provato con Python 3.7).
import tkinter as tk


def callback(event):
    print(entry.get())

#Base
master = tk.Tk()
entry = tk.Entry(master)
button = tk.Button(master, text="Premimi")

#Eventi
button.bind("<Button-1>", callback)

#Pack
entry.pack()
button.pack()

#Loop
master.mainloop()
Nel terminale vedrai stampato quanto digitato nell'Entry(), puoi farci quello che vuoi a questo punto.

Cya
GRazie!!!!!


Pagina: 1



Esegui il login per scrivere una risposta.