Python如何实现GUI代码

Python如何实现GUI代码,python,python-2.7,user-interface,tkinter,Python,Python 2.7,User Interface,Tkinter,我对用python制作GUI非常陌生,我到处都找过,但找不到我想要的东西。我只想有一个程序,其中用户输入一个半径,该程序通过单击按钮或输入,在标签上打印出该半径的区域。提前感谢:) 导入Tkinter,数学 类计算(Tkinter.tk): 定义初始化(自身,父级): Tkinter.Tk.\uuuuu init\uuuuuu(自,父) self.parent=parent self.initialize() def初始化(自): self.grid() self.entryVariable=T

我对用python制作GUI非常陌生,我到处都找过,但找不到我想要的东西。我只想有一个程序,其中用户输入一个半径,该程序通过单击按钮或输入,在标签上打印出该半径的区域。提前感谢:)

导入Tkinter,数学
类计算(Tkinter.tk):
定义初始化(自身,父级):
Tkinter.Tk.\uuuuu init\uuuuuu(自,父)
self.parent=parent
self.initialize()
def初始化(自):
self.grid()
self.entryVariable=Tkinter.DoubleVar()
self.entry=Tkinter.entry(self,textvariable=self.entryVariable)
self.entry.grid(列=0,行=0,sticky='EW')
self.entry.bind(“,self.on按Enter键)
self.entryVariable.set(u“半径”)
button=Tkinter.button(self,text=u“单击转换”,command=self.onbutton单击)
button.grid(列=1,行=0)
self.labelVariable=Tkinter.StringVar()
label=Tkinter.label(self,textvariable=self.labelVariable,anchor=“w”,fg=“白色”,bg=“灰色”)
label.grid(column=0,row=1,columnspan=2,sticky='EW')
self.labelVariable.set(u“请输入半径”)
self.grid\u column配置(0,权重=1)
self.reshable(真、假)
self.update()
self.geometry(self.geometry())
self.entry.focus_set()
self.entry.selection_范围(0,Tkinter.END)
def ON按钮单击(自身):
self.labelVariable.set(self.convertVariable.get())
self.entry.focus_set()
self.entry.selection_范围(0,Tkinter.END)
def OnPressEnter(自我,事件):
self.converter()
self.labelVariable.set(self.convertVariable.get())
self.entry.focus_set()
self.entry.selection_范围(0,Tkinter.END)
def转换器(自):
convertVariable(math.pi*self.entryVariable.get()**2)
如果名称=“\uuuuu main\uuuuuuuu”:
app=计算值(无)
应用标题(“半径转换器”)
app.mainloop()

我对你的代码做了一点修改。现在代码将显示您提到的标签上的区域。检查代码。如果我错了,请告诉我

导入Tkinter,数学
类计算(Tkinter.tk):
定义初始化(自身,父级):
Tkinter.Tk.\uuuuu init\uuuuuu(自,父)
self.parent=parent
self.initialize()
def初始化(自):
self.grid()
self.entryVariable=Tkinter.StringVar()
self.entry=Tkinter.entry(self,textvariable=self.entryVariable)
self.entry.grid(列=0,行=0,sticky='EW')
self.entry.bind(“,self.on按Enter键)
self.entryVariable.set(u“半径”)
button=Tkinter.button(self,text=u“单击转换”,command=self.onbutton单击)
button.grid(列=1,行=0)
self.labelVariable=Tkinter.StringVar()
label=Tkinter.label(self,textvariable=self.labelVariable,anchor=“w”,fg=“白色”,bg=“灰色”)
label.grid(column=0,row=1,columnspan=2,sticky='EW')
self.labelVariable.set(u“请输入半径”)
self.grid\u column配置(0,权重=1)
self.reshable(真、假)
self.update()
self.geometry(self.geometry())
self.entry.focus_set()
self.entry.selection_范围(0,Tkinter.END)
def ON按钮单击(自身):
self.labelVariable.set(str(self.converter())+“是区域。”)
self.entry.focus_set()
self.entry.selection_范围(0,Tkinter.END)
def OnPressEnter(自我,事件):
self.labelVariable.set(str(self.converter())+“是区域。”)
self.entry.focus_set()
self.entry.selection_范围(0,Tkinter.END)
def转换器(自):
打印self.entryVariable.get()
返回(math.pi*(float(self.entryVariable.get())*float(self.entryVariable.get()))
如果名称=“\uuuuu main\uuuuuuuu”:
app=计算值(无)
应用标题(“半径转换器”)

app.mainloop()
你的东西怎么了?除了“def converter”以外的所有东西都是从其他地方“复制”来的,因为我还在学习,但我不知道如何正确地将数学添加到代码中,所以“def converter”中的所有东西都是我在试图找出的。你有几个问题。您应该调用
self.converter()
,作为
onpresenter()
中的第一行。不能将字符串添加到浮动中。您应该做一些更像
“{}是区域。”.format(self.convertVariable.get())
converter()
定义
convertVariable
,但设置
convert
。将
self.convert
切换到
self.convertVariable
self.entryVariable
是一个
StringVar
,因此在尝试对其进行数学运算之前,请记住对其进行转换。这将是
float(…)
,或者只使用
DoubleVar
。我不认为我忘记了什么,但如果它不起作用,请告诉我。我建议Kivy使用python,而不是Tkinter,这样更容易!我现在做了一些更改,但我不完全理解,我将编辑上面的脚本。非常感谢您的帮助,顺便说一句:)所以我应用了修改,但现在我得到了一个语法错误,它将其归咎于“:”in
if\uuuuuuuu name\uuuuu==”\uuuuu main\uuu:”
其缩进问题。。我已经修改了它。该代码显示为代码段。您是否测试过是否可以运行它?
import Tkinter, math

class calc_tk(Tkinter.Tk):
def __init__(self,parent):
    Tkinter.Tk.__init__(self,parent)
    self.parent = parent
    self.initialize()

def initialize(self):
    self.grid()

    self.entryVariable = Tkinter.DoubleVar()
    self.entry = Tkinter.Entry(self,textvariable=self.entryVariable)
    self.entry.grid(column=0,row=0,sticky='EW')
    self.entry.bind("<Return>", self.OnPressEnter)
    self.entryVariable.set(u"Radius")

    button = Tkinter.Button(self,text=u"Click to convert",command=self.OnButtonClick)
    button.grid(column=1,row=0)

    self.labelVariable = Tkinter.StringVar()
    label = Tkinter.Label(self,textvariable=self.labelVariable,anchor="w",fg="white",bg="gray")
    label.grid(column=0,row=1,columnspan=2,sticky='EW')
    self.labelVariable.set(u"Please enter a radius.")

    self.grid_columnconfigure(0,weight=1)
    self.resizable(True,False)
    self.update()
    self.geometry(self.geometry())       
    self.entry.focus_set()
    self.entry.selection_range(0, Tkinter.END)

def OnButtonClick(self):
    self.labelVariable.set( self.convertVariable.get() )
    self.entry.focus_set()
    self.entry.selection_range(0, Tkinter.END)

def OnPressEnter(self,event):
    self.converter()
    self.labelVariable.set( self.convertVariable.get() )
    self.entry.focus_set()
    self.entry.selection_range(0, Tkinter.END)

def converter(self):
    self.convertVariable(math.pi * self.entryVariable.get()**2)

if __name__ == "__main__":
app = calc_tk(None)
app.title('Radius Converter')
app.mainloop()