2016-01-19 36 views
-6

我目前正在爲疑難解答設計一個代碼。我的問題是,當我按「其他」時,應該有一個數據輸入表單標籤,它有。但是,當我鍵入的東西進去,然後按下繼續,它表明,說:「未找到全局名稱'display'

Exception in Tkinter callback 
    Traceback (most recent call last): 
    File "C:\Python33\lib\tkinter\__init__.py", line 1482, in __call__ 
    return self.func(*args) 
    File"R:\ICT\ControlledAssessment_15_17\Computing\Unit3\RiddhiSharma\FinalTroubleshooter.py", line 15, in click 
    display.insert(END, key) 
    NameError: global name 'display' is not defined 

我想在我的實際代碼的問題是在這裏的錯誤:

def click(): 
     display.insert(END, key) 
     output.delete(0.0, END) 
     try: 
      entered_text=entry.get() 
      definition = my_glossary[entered_text] 
     except: 
      definition = "There is no entry for this word." 
      output.insert(END, definition) 
+9

我在代碼中的任何地方都看不到'display = ...',所以我不覺得'display .insert(...)'將無法找到'display'變量。 – Kevin

+1

您不需要所有代碼來複制問題。請閱讀http://www.stackoverflow.com/help/mcve –

回答

0

顯然顯示不的一部分tkinter模塊或它沒有完全定義,所以當你嘗試使用它時,它會引發錯誤,因爲你沒有將顯示定義爲變量,函數,類等等。所以定義顯示是一個帶有兩個參數END和key的函數

定義顯示時,可以做一些像這樣的事情:

display = 123 

你也可以使它成爲一個入口,或任何顯示應該是。在你的情況,顯示不必等於123.這可能是等於類:

display = Display() 

只要定義顯示()第一......但顯示器可以是任何你想要的,只要你定義它並正確使用它。

+2

看着這條線,'display.insert(END,key)',顯示應該是一個'Entry'或類似的東西。 – Lafexlos

+0

我試着顯示= 123,現在它說AttributeError:'int'對象沒有屬性'插入' –

0

@PythonMaster非常感謝您的幫助。爲了解決我的問題,我更換了顯示功能,並將代碼寫出來,如下所示:

def click(): 
     entered_text = entry.get() 
     output.delete(0.0, END) 
    try: 
     definition = my_glossary[entered_text] 
    except: 
     definition = "There is no entry for this word." 
    output.insert(END, definition)