Python 图形用户界面 - 2.7 到 3.5

Python GUI - 2.7 to 3.5

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

from tkinter import *
App = Tk()
App.geometry("400x400")
L = Label(App, text="Hello")
L.pack()

您不需要使用相框。

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

app = Frame(root)

克服导入差异的一种方法是 ImportError when importing Tkinter in Python

您的脚本有两处错误。第一个给出了错误,您已经找到了解决方法:

app = Frame(root)

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

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

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