tkinter:未定义全局名称

发布于 2024-11-30 17:23:04 字数 600 浏览 2 评论 0原文

当我尝试运行此代码时,总是收到错误消息。 我有 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

I am always getting an error message when I try to run this code.
I have the Tkinter documentation and have read it. I am trying to put text into a field that will disappear once a person starts typing. Here is the code.

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()

I always get this error:

NameError: global name 'mytext' is not defined

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

苦行僧 2024-12-07 17:23:04

我的调试第一条规则:假设错误是真实的。在这种情况下,它表示 mytext 未定义。当我查看您的代码时,我必须同意:您没有在任何地方定义名为 mytext 的全局变量。

然而,您确实定义了名为self.mytext的内容。您应该在以下代码行中使用它:

self.e = Entry(bg='orange', textvariable=self.mytext, relief=SUNKEN, width=45) 

My first rule of debugging: assume the error is telling the literal truth. In this case it is saying mytext is undefined. When I look at your code I have to agree: nowhere do you define a global variable named mytext.

You do, however, define something named self.mytext. You should use that in the following line of code:

self.e = Entry(bg='orange', textvariable=self.mytext, relief=SUNKEN, width=45) 
飞烟轻若梦 2024-12-07 17:23:04

使用这个:

import tkinter
root = tkinter. Tk()

use this:

import tkinter
root = tkinter. Tk()
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文