Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/user-interface/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
PythonGUI-2.7到3.5_Python_User Interface_Tkinter_Python 3.5 - Fatal编程技术网

PythonGUI-2.7到3.5

PythonGUI-2.7到3.5,python,user-interface,tkinter,python-3.5,Python,User Interface,Tkinter,Python 3.5,我正在跟随YouTube的教程学习Python tkinter GUI。 但是当我运行上面的代码时,会出现一个错误 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") labe

我正在跟随YouTube的教程学习Python tkinter GUI。 但是当我运行上面的代码时,会出现一个错误

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()
回溯(最近一次呼叫最后一次):
文件“C:/Users/Nathan/Desktop/Python/pythongui/Simple GUI.py”,第14行,在
app=帧(根)
NameError:未定义名称“frame”
我知道这与
frame
有关,我尝试了
frame
,但它不起作用。 你能帮我把它弄好吗,谢谢

我目前正在使用Python 3.5,教程在2.7中

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

您不需要使用框架。

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

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

克服导入差异的一种方法是

脚本有两个问题。第一个给出了错误,您已经解决了如何修复该错误:

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

app = Frame(root)

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

虽然OP确实不需要使用框架,但这并不能回答所提出的问题。此外,此代码不起作用,因为标签的父项为
v
,但您只创建了一个名为
v
——case很重要。当您说您尝试了
Frame
,但它不起作用时,出现了什么错误<代码>帧是合适的解决方案。@silentphoenix:OP不正确,或者遗漏了一些细节。答案确实是使用
Frame
而不是
Frame
label = Label(app, text = "This is a label")
label.grid()
app.pack()