找不到全局名称“display”

时间:2016-01-19 15:27:56

标签: python tkinter

我正在为故障排除程序设计代码。我的问题是当我按“其他”时,应该有一个数据输入表单标签。但是当我输入内容并按下继续时,它会显示一个错误,上面写着“

    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)

2 个答案:

答案 0 :(得分:0)

显然,显示不是tkinter模块的一部分,或者它没有完全定义。因此,当您尝试使用它时,它会引发错误,因为您没有将显示定义为变量,函数,类等。因此,define display是一个带有两个参数END和key的函数。

定义显示时。你可以这样做:

display = 123

您也可以将其设为ENTRY或任何显示器。在你的情况下,显示不必等于123.它可以等于一个类:

display = Display()

首先定义Display()......但只要您定义并正确使用它,显示就可以是您想要的任何内容。

答案 1 :(得分: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)