更新!:Tkinter python 2.7问题 导入Tkinter 导入tkMessageBox 类MyApp(对象): 定义初始化(自): self.topFrame=Tkinter.Frame() self.root=Tk() self.root.wm_标题(“我的第一个窗口!”) self.label=label(self.root,text=“输入您的体重”) self.label.pack(padx=20,pady=10) self.labeltext=StringVar() self.labeltext.set(“输入您的身高!”) Label(self.root,textvariable=self.labeltext.pack()) self.entrytext2=StringVar() 条目(self.root,textvariable=self.entrytext2.pack()) self.entrytext2.trace('w',self.entry\u已更改) self.buttontext=StringVar() self.buttontext.set(“Bouton”) 按钮(self.root,textvariable=self.buttontext,command=self.clicked1).pack() self.entrytext=StringVar() 条目(self.root,textvariable=self.entrytext).pack() self.entrytext.trace('w',self.entry\u已更改) def calcBMI(自身): 权重=浮动(self.entrytext2.get()) 英寸=浮动(self.entrytext.get()) 体重指数=(体重*703)/英寸**2 如果BMI>18.5且BMI
因此,当我编辑它时,我得到:更新!:Tkinter python 2.7问题 导入Tkinter 导入tkMessageBox 类MyApp(对象): 定义初始化(自): self.topFrame=Tkinter.Frame() self.root=Tk() self.root.wm_标题(“我的第一个窗口!”) self.label=label(self.root,text=“输入您的体重”) self.label.pack(padx=20,pady=10) self.labeltext=StringVar() self.labeltext.set(“输入您的身高!”) Label(self.root,textvariable=self.labeltext.pack()) self.entrytext2=StringVar() 条目(self.root,textvariable=self.entrytext2.pack()) self.entrytext2.trace('w',self.entry\u已更改) self.buttontext=StringVar() self.buttontext.set(“Bouton”) 按钮(self.root,textvariable=self.buttontext,command=self.clicked1).pack() self.entrytext=StringVar() 条目(self.root,textvariable=self.entrytext).pack() self.entrytext.trace('w',self.entry\u已更改) def calcBMI(自身): 权重=浮动(self.entrytext2.get()) 英寸=浮动(self.entrytext.get()) 体重指数=(体重*703)/英寸**2 如果BMI>18.5且BMI,python,tkinter,Python,Tkinter,因此,当我编辑它时,我得到: import Tkinter import tkMessageBox class MyApp(object): def __init__(self): self.topFrame = Tkinter.Frame() self.root = Tk() self.root.wm_title("My first window!") self.label = Label(self.root, text
import Tkinter
import tkMessageBox
class MyApp(object):
def __init__(self):
self.topFrame = Tkinter.Frame()
self.root = Tk()
self.root.wm_title("My first window!")
self.label = Label(self.root, text="Enter your weight")
self.label.pack(padx=20,pady=10)
self.labeltext = StringVar()
self.labeltext.set("Enter your height!")
Label(self.root, textvariable=self.labeltext).pack()
self.entrytext2 = StringVar()
Entry(self.root, textvariable=self.entrytext2).pack()
self.entrytext2.trace('w', self.entry_changed)
self.buttontext = StringVar()
self.buttontext.set("Bouton")
Button(self.root, textvariable=self.buttontext, command=self.clicked1).pack()
self.entrytext = StringVar()
Entry(self.root, textvariable=self.entrytext).pack()
self.entrytext.trace('w', self.entry_changed)
def calcBMI(self):
weight = float(self.entrytext2.get())
inches = float(self.entrytext.get())
BMI = (weight * 703)/ inches **2
if BMI > 18.5 and BMI < 25:
self.labeltext.set(BMI)
elif BMI < 18.5:
print ' Your BMI is Underweight ', self.value.set(BMI)
else:
print ' Your BMI is Overweight ', self.value.set(BMI)
def clicked1(self):
response = tkMessageBox.askyesno("Confirm", "You clicked?")
if response:
self.labeltext.set("You've been clicked!")
self.buttontext.set("Butttttttton")
print response
MyApp()
文件“window1.py”,第45行,在
MyApp()
文件“window1.py”,第7行,在_init中__
self.root=Tk()
NameError:未定义全局名称“Tk”
由于您导入了“*from”Tkinter,因此无法使用其名称来引用它。要在程序中使用名称Tkinter
,必须按如下方式导入:
File "window1.py", line 45, in <module>
MyApp()
File "window1.py", line 7, in __init__
self.root = Tk()
NameError: global name 'Tk' is not defined
或者,您只需从代码中删除“Tkinter.
”,并保留import语句,如下所示
请阅读尝试调用Frame(),而不是Tkinter.Frame()。您使用了一个野生导入,这是这行代码
import Tkinter
因此,名称空间“Tkinter”已经通过该语句定义,并且该名称空间中的每个invidual方法和类现在都可以直接使用
Frame()在使用
from Tkinter import *
而不是前者。我还没有测试您的代码是否存在进一步的问题。您混淆了两条好建议。尝试在有问题的行中添加
Tkinter.Tk()
。如果您在问题后面添加了内容,而不是全部替换,那就最好了。现在看来,甘达罗和贾普班赛给出了错误的答案,而事实上他们很有帮助。@user173314听从朱努克斯的建议。Tk()是模块Tkinter中的一个类,当您简单地导入Tkinter时,python需要知道神奇的术语Tk()来自何处,在本例中,它来自您导入的模块。如果您阅读甘达罗提供的URL,它将帮助您更好地理解这一点。
import Tkinter