tkinter: глобальное имя не определено - PullRequest
1 голос
/ 20 августа 2011

Я всегда получаю сообщение об ошибке при попытке запустить этот код. У меня есть документация Tkinter, и я прочитал ее. Я пытаюсь поместить текст в поле, которое исчезнет, ​​как только человек начнет печатать. Вот код.

class MyGrid(Frame):
    def __init__(self, win=None):
        Frame.__init__(self, win)
        self.grid()
        self.mkWidgets()

    def mkWidgets(self):
        self.mytext = StringVar()
        self.mytext.set("Enter text here")
        self.e = Entry(bg='orange', textvariable=mytext, relief=SUNKEN, width=45)          
        self.e.grid(row=0, column=0)

app = MyGrid()

app.mainloop()

Я всегда получаю эту ошибку:

NameError: global name 'mytext' is not defined

Ответы [ 2 ]

1 голос
/ 20 августа 2011

Мое первое правило отладки: предположим, что ошибка говорит буквальную правду. В этом случае говорится, что mytext не определено. Когда я смотрю на ваш код, я должен согласиться: нигде вы не определяете глобальную переменную с именем mytext.

Вы делаете , однако определяете что-то с именем self.mytext. Вы должны использовать это в следующей строке кода:

self.e = Entry(bg='orange', textvariable=self.mytext, relief=SUNKEN, width=45) 
0 голосов
/ 18 декабря 2013

используйте это:

import tkinter
root = tkinter. Tk()
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...