首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >Tkinter,“module”对象没有属性“Frame”

Tkinter,“module”对象没有属性“Frame”
EN

Stack Overflow用户
提问于 2014-01-08 21:58:25
回答 3查看 10.9K关注 0票数 3

我用tkinter python写了一个hello world应用程序,但我收到了下一条消息:'module‘对象没有'Frame’属性。

代码语言:javascript
运行
复制
import _tkinter as tk

下面是错误

代码语言:javascript
运行
复制
class Application(tk.Frame):
    def __init__(self, master=None):
        tk.Frame.__init__(self, master)
        self.pack()
        self.createWidgets()
    def createWidgets(self):
        self.hi_there = tk.Button(self)
        self.hi_there["text"] = "Hello World\n(click me)"
        self.hi_there["command"] = self.say_hi
        self.hi_there.pack(side="top")

        self.QUIT = tk.Button(self, text="QUIT", fg="red",
                                        command=root.destroy)
        self.QUIT.pack(side="bottom")

    def say_hi(self):
        print("hi there, everyone!")

root = tk.Tk()
app = Application(master=root)
app.mainloop()

为什么会发生这种情况?

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2014-01-08 22:00:04

应使用Tkinter (如果使用Python3.x,则为tkinter),而不是_tkinter

代码语言:javascript
运行
复制
import Tkinter as tk

根据Tkinter module documentation的说法

...Tk接口位于名为_tkinter的二进制模块中。此模块包含Tk的低级接口,不应由应用程序程序员直接使用。

票数 3
EN

Stack Overflow用户

发布于 2017-05-10 06:22:07

不要将您的文件称为tkinter.py,如果需要,请重命名。

票数 11
EN

Stack Overflow用户

发布于 2017-10-19 16:43:39

这里的解决方案是为关联的Python版本使用正确的语法。

Tkinter >> Python2.x

tkinter >> Python3.x

尽管如此,我还是有错误,因为我已经将我的文件命名为tkinter.py,并且出现了错误:

代码语言:javascript
运行
复制
module 'tkinter' has no attribute 'Frame'

一旦我将我的文件重命名为完全不同的名称,在我的例子中,我选择了tk-testing.py,它在Python2.x和Python3.x中都很好,同时使用上面正确的命名约定。

Python 2.x

代码语言:javascript
运行
复制
import Tkinter as tk

Python 3.x

代码语言:javascript
运行
复制
import Tkinter as tk
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/20997761

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档