Visualizzazione dei risultati da 1 a 5 su 5

Discussione: [Python] Variabili

  1. #1

    [Python] Variabili

    è possibile creare variabile senza assegnarli inizialmente alcun valore???


    Io per esempio ho questo script che crea una GUI

    codice:
    import Tkinter
    
    a_str = []
    NameStr = ""
    
    def ComplaintDialog():
    	Title["text"] = NameStr
    
    root=Tkinter.Tk()
    Title = Tkinter.Label(root)
    Title["text"] = len(a_str) + 1
    Title.pack()
    Tkinter.Entry(root,textvariable = NameStr).pack()
    Butt = Tkinter.Button(root,text="Prova",command = ComplaintDialog).pack()
    root.mainloop()
    La variabile NameStr dovrebbe contenere il valore specificato dall'utente nell'Entry, ma poichè la variaile NameStr devo dichiararla e assegnargli un valore ogni volta il valore contenuto in NameStr si azzera ritornando "".

    Come devo fare??
    Scusate ma sono alle prime armi con Python...

    Claudio

  2. #2
    Utente di HTML.it
    Registrato dal
    Oct 2002
    Messaggi
    2,894
    Non ha capito bene... :master:

  3. #3
    non ti preoccupare, fai così. Modifica il mio programma in modo che quando l'utente preme il bottone il testo del label diventa ciò che l'utente ha scritto nell'entry.

    Ti semplifico un po' il codice eliminandoti quell'array che forse ti crea un po' di casino in testa:

    codice:
    import Tkinter
    
    NameStr = ""
    
    def ComplaintDialog():
    	Title["text"] = NameStr
    
    root=Tkinter.Tk()
    Title = Tkinter.Label(root)
    Title["text"] = "testo originale"
    Title.pack()
    Tkinter.Entry(root,textvariable = NameStr).pack()
    Butt = Tkinter.Button(root,text="Prova",command = ComplaintDialog).pack()
    root.mainloop()
    dato che una variabile in python deve essere dichiarata assegnandogli un valore devo per forza mettere NameStr = "". Il problema è che quando un untente mette il testo nell'entry e clicca il bottone inizialmente la variabile NameStr prende il valore immesso nell'entry, ma poi diviene ancora azzerata dalla definizione di variabile NameStr="".

    Penso che ciò possa essere evitato dichiarando semplicemente la variabile senza assegnarli alcun valore... ma si può??? Se si può fare, COME si fa??

    Il alternativa probabilemnte ho trovato un'altra soluzione, ma mi serve sapere come si fa per capire se una variabile è stata mai creata (se conosci PHP è come la funzione isset(), che prende come argomento una variabile e restituisce TRUE se esiste e FALSE se non esiste). Attenzione!!! La funzione non deve dirmi se alla variabile è associato un valore, ma se la variabile esiste!!!

    Spero di essere stato più chiaro
    Claudio

  4. #4
    Utente di HTML.it
    Registrato dal
    Oct 2002
    Messaggi
    2,894
    La Entry ha il metodo get()

    Quando clicchi il bottone vai a mettere nella Label il valore della Entry così:

    Label["text"] = Entry.get()

    O no...

  5. #5
    grazie, cmq ho risolto con le variabili di tkinter impostando la variabile

    NameStr = Tkinter.StringVar(root)

    e poi Label["text"] = NameStr.get()


    grazie 1000 cmq

    ora prova a darmi una mano nell'altro post che ho messo poco fa intitolato "[Python] Tkinter: frame, scrollbars, canvas".


    grazie 1000
    Claudio

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2019 vBulletin Solutions, Inc. All rights reserved.