1
from tkinter import *

#Create the window
root = Tk()

#Modify root window
root.title("Simple GUI")
root.geometry("200x50")

app = frame(root)
label = Label(app, text = "This is a label")
label.grid()


#kick of the event loop
root.mainloop()

我正在关注 YouTube 的教程来了解 Python tkinter GUI。但是当我运行上面的代码时,它会出现错误。

Traceback (most recent call last):
  File "C:/Users/Nathan/Desktop/Python/Python GUI/Simple GUI.py", line 14, in <module>
    app = frame(root)
NameError: name 'frame' is not defined

我知道这与它有关frame,我试过了Frame,但它不起作用。能不能帮我搞定,谢谢!

我目前使用的是 Python 3.5,教程是 2.7

4

4 回答 4

1

您确实知道 2.x 模块被命名为 Tkinter,但在 3.x 中它被命名为 tkinter。但是,Frame 类没有将第一个字母更改为小写。它仍然是框架。

app = Frame(root)

克服导入差异的一种方法是在 Python 中导入 Tkinter 时出现 ImportError

于 2015-10-25T16:23:48.273 回答
1

您的脚本有两点错误。第一个给出了错误,你已经想出了如何解决这个问题:

app = Frame(root)

第二个问题是如果没有适当的布局管理,标签不会出现在框架内。要解决这个问题,请调用pack()框架:

label = Label(app, text = "This is a label")
label.grid()
app.pack()
于 2015-10-25T16:30:22.570 回答
0
from tkinter import *
App = Tk()
App.geometry("400x400")
L = Label(App, text="Hello")
L.pack()

你不需要使用框架。

于 2015-10-25T15:47:48.450 回答
0

首先,要了解,无论何时要创建标签或框架,请确保使用其首字母大写。例如。标签()或框架()。在你上面的例子中使用: app = Frame(root) 然后你需要使用“grid()”来很好地打包你的框架。在上面的示例中使用: app.grid() 祝你好运!

于 2017-11-11T07:10:19.933 回答