2016-12-12 5 views
-2

bin ein Anfänger, bitte etwas Geduld. Dieser Code ist ein GUI-Element, das ein Eingabefeld hat, wenn der Benutzer es eingibt und auf "Enter" klickt. Es zeigt den Benutzertext mit einem Label, aber wenn ich versuche, den Benutzertext außerhalb der Funktion zu bekommen, erhalte ich den FehlerWie bekomme ich Variablenwert außerhalb der Funktion

def qf(event): 
    global var 
    var= "" 
    var= s.set("%s" % r.get()) 

class1(tk.Frame) 
    def __init__:(self, parent, controller) 
     global s,r 
     s =tk.StringVar() 
     r= tk.StringVar() 

     textbox1 = tk.Entry(self,width= 75,textvariable= r) 
     textbox1.place(relx=.28, rely=.966) 

     textbox1.bind('<Return>', qf) 

     label3 = tk.Label(self, textvariable= s, font= Large_Font) 
     label3.pack(pady=10, padx=10)   


print " Text is: %s" %var 

ich diesen Fehler: Nameerror: global name ‚var‘ definiert ist, nicht

Antwort

0

Nun, es scheint, dass Sie die globale Variable in qf() Funktion definieren, aber man kann nie die Funktion ausführen, so dass Sie nie definieren die globale Variable var.

Sehen Sie den Code unten:

def qf(): 
    global var 
    var = "hello" 

qf() # if you miss this, python can't find 'var' 
print "Text is: %s" % var 
+0

danke, qf innerhalb der Klasse nenne, sind –

+0

Sie nennen es nur dann, wenn die Enter-Taste so gedrückt wird, wenn 'print "Text ist:% s" % var 'wird ausgeführt, var existiert nicht. Definieren Sie 'var = StringVar()' außerhalb jeder Klasse und Funktion – scotty3785

Verwandte Themen