Forum >> Programmazione Python >> GUI >> Entry non funziona

Pagina: 1

Buongiorno a tutti,



Sono ancora io che, ovviamente, ho un problema elementare che non riesco a risolvere :angry:




Ho creato un semplice programma di prova con 2 Label, 2 Entry, 1 Button, 1 messagebox (showwarning). All'avvio del programma viene segnalato un avvuso (voluto appositamente) e, quando si clicca su OK, si vede il programma normale. Il problema è che, finché non si riduce a icona la finestra (anche dentro al programma con root.lower) non è possibile scrivere niente dentro alle entry (anche se il bottone funziona).

Io credo di stare impazzendo :dont-know:




Grazie a tutti! :)
Ciao, prova a postare un po' di codice e ci ragioniamo insieme, aggiungendo anche tutte le informazioni del caso, come la versione del linguaggio, della libreria, l'ambiente di sviluppo, etc... etc...

Cya
Ciao Daniele,



Grazie per la risposta!

In effetti non mi ero spiegato benissimo nell'altro messaggio: io lavoro su windows 10, ho python 3.7.7 e uso tkinter come supporto grafico.

Il programma dovrebbe essere una finestra di login che si apre nel caso in cui si verifichino errori durante il precedente login.

Tecnicamente non ci sono errori riconosciuti dall'interprete, quindi non capisco dove sbaglio: quando eseguo il programma (sia da riga di comando che da IDE (ho provato con IDLE, PyCharm e Thonny)) viene visualizzato tutto correttamente ma, dopo che appare il popup di avviso e clicco su OK, non riesco ad inserire nulla nelle entry (a meno che, come anticipato nell'altro messaggio, io riduca a icona la finestra e torni ad ingrandirla).

(Nel codice qui sotto non ho inserito la parte del parsing del database per non appesantirlo e perché ho notato che, anche rimuovendo quella parte, il problema persiste. Ho utilizzato la forma contratta inst=constructor(**args).method() per abbreviare il codice, anche se nel programma originale uso una forma estesa). Grazie in anticipo :)




Buona giornata

Niccolò




import tkinter
from tkinter.messagebox import showwarning

root = tkinter.Tk()
root.title("Login Erorr")

showwarning("Login Error", "Pixel Paint crashed last time it runs.\nPlease insert your Username and Password")

usr_label = tkinter.Label(root, text="Username: ").grid(row=1, column=1)
usr_entry = tkinter.Entry(root).grid(row=1, column=2)

pwd_label = tkinter.Label(root, text="Password: ").grid(row=2, column=1)
pwd_entry = tkinter.Entry(root).grid(row=2, column=2)

submit_button = tkinter.Button(root, text="Login", command=submit_user).grid(row=3, column=2)

if __name__ == "__main__":
	root.mainloop()

In effetti avrei potuto usare c++ dal momento che il programma principale è in c++ ma, per velocizzare lo sviluppo, semplificare l'accesso ai database e dal momento che non avevo esigenze grafiche particolari ho deciso di utilizzare python (anche perché per i miei scopi mi sembrava il più adatto, vista anche la compatibilità con c++)

--- Ultima modifica di Il Linuxino in data 2020-06-07 13:17:18 ---

--- Ultima modifica di Il Linuxino in data 2020-06-07 14:30:46 ---
Ciao di nuovo, ho provato il tuo codice al volo e non capisco cosa non vada, fa esattamente quello che vuoi che faccia, cioè le Entry accettano l'input degli utenti.

Ovviamente lo script restituisce un errore sull'assenza di submit_user che credo tu abbia omesso per comodità, ma il resto funziona.

Forse non ho capito bene il problema a questo punto, fai sapere cosa ho mal interpretato.

Cya

Ancora ciao,



Grazie per la risposta, ho ritentato più volte apportando piccole modifiche al codice ma il problema persiste. L'unica soluzione che ho trovato finora è stata quella di eliminare il showwarning(), che però mi sembra la parte più importante del programma. Non so proprio cosa fare...




Ricordo che mi era capitato un problema analogo in un altro programma (python 3.8.2 e un altro computer win10) un po' di tempo fa e mi era bastato aggiungere una riga

root.lower()
e si era risolto il problema (cosa che mi appare comunque abbastanza strana perché con quella riga si sarebbe dovuta ridurre a icona la finestra, cosa che non accadeva), ma stavolta non funziona.

O meglio, funziona ma la finestra si rimpicciolisce e non è quello che voglio :thinking:




Ti ringrazio ancora per l'aiuto


(comunque sì, submit user avrebbe dovuto occupare molte altre righe quindi non l'ho inserita)





--- Ultima modifica di Il Linuxino in data 2020-06-08 12:59:06 ---


Pagina: 1



Esegui il login per scrivere una risposta.