2016-12-12 25 views
-2

是初學者,請耐心等待。這個代碼是一塊GUI,當用戶在其中寫入時,它具有一個輸入框,並且點擊「Enter」按鈕,它使用標籤顯示用戶文本,但是當我試圖獲得用戶文本在該功能之外時,我得到錯誤如何獲得函數外的變量值

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 

我得到這個錯誤:NameError:全局名稱「變種」沒有定義

回答

0

嗯,看來你在qf()功能定義全局變量,但你永遠不會運行的功能,這樣你就永遠無法定義全局變量var

請參見下面的代碼:

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

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

謝謝你,我打電話裏面的類QF, –

+0

你只調用它時,輸入鍵被按下,所以當'打印「文本是:%s的」%VAR '執行,var不存在。 在任何類和函數之外定義'var = StringVar()' – scotty3785