Forum >> Principianti >> problema con casella di testo

Pagina: 1

ciao a tutti usando tkinter è sorto un problema,in quanto non sto riuscendo a visualizzare il testo contenuto in una casella di testo su un'altra interfaccia(sull'altra interfaccia creata mi escono una serie di numeri seguiti da StringVar),questa operazione vorrei farla tramite un Bottone
ecco il codice con errore creato da me
per favore potete dirmi dove sto sbagliando...










--- Ultima modifica di Futesi in data 2015-12-10 12:56:16 ---

--- Ultima modifica di Futesi in data 2015-12-10 13:38:44 ---
Allegati
per favore potete dirmi dove sto sbagliando...
from tkinter import * ###<--- non bisognerebbe importare tutto da un modulo
                      ### ma non e` questo l'errore.
def inserisci():
    a=Tk() ### <--- Una finestra secondaria deve essere Toplevel non Tk

    testo=Label(a,text=contenuto).pack ###<--- pack senza () non fa comparire la label
                                      ### inoltre 'contenuto' si riferisce all'oggetto
                                      ### StringVar e non al suo contenuto da ricavare
                                      ### con .get()

finestra=Tk()
contenuto=StringVar ###<--- StringVar senza () non crea l'oggetto StringVar
casellatesto=Entry(finestra,textvariable=contenuto).pack()
bottone=Button(text="ok",command=inserisci).pack()
                                                 ###<--- manca la chiamata al mainloop
Oltre a questo la forma nome=Widget().pack() è sintatticamente corretta ma il significato è sbagliato, scrivere:
casellatesto=Entry(finestra,textvariable=contenuto).pack()
è assolutamente uguale a scrivere
Entry(finestra,textvariable=contenuto).pack()
casellatesto=None

*** Il codice va evidenziato con il simbolo di fianco ai colori per non perdere l'indentazione ***
Cioa Claudio,grazie per la tua disponibilità ad aiutarmi,ho corretto quelle mancanze che mi hai segnalato(tranne il fatto di non usare Tk per creare una finestra secondaria) ma sfortunatamente il nuovo codice non arriva ancora al fine che volevo.




--- Ultima modifica di Futesi in data 2015-12-11 00:00:41 ---
Allegati
come non detto Claudio ho risolto grazie molto :ok:


--- Ultima modifica di Futesi in data 2015-12-11 00:12:35 ---
Allegati
ho risolto
Non del tutto:
from tkinter import *
def inserisci():
    a=Tk() ### <--- Una finestra secondaria deve essere Toplevel e NON Tk

    testo=Label(a,text=contenuto.get()).pack() ### <--- errore nome=widget().pack()

    a.mainloop() ### <--- Il mainloop va avviato solo una volta sull'istanza di Tk

finestra=Tk()
contenuto=StringVar()
casellatesto=Entry(finestra,textvariable=contenuto).pack() ### <--- errore nome=widget().pack()
bottone=Button(text="ok",command=inserisci).pack() ### <--- errore nome=widget().pack()

finestra.mainloop()
Ripeto, scrivere:
bottone=Button(text="ok",command=inserisci).pack()
non ha alcun senso perché è come scrivere
Button(text="ok",command=inserisci).pack()
bottone=None
quindi o si scrive
bottone = Button(text="ok", command=inserisci)
bottone.pack()
o si scrive solo
Button(text="ok", command=inserisci).pack()

...a seconda se interessa o meno tenere in una variabile il riferimento al widget appena creato

*** Il codice va evidenziato con il simbolo di fianco ai colori per non perdere l'indentazione ***


Pagina: 1



Esegui il login per scrivere una risposta.