在Python中製作GUI非常新,我到處搜索,但無法找到我在找什麼。我只是想要一個程序,用戶輸入一個半徑,然後程序用鼠標單擊或輸入按鈕打印標籤中的半徑區域。在此先感謝:)Python如何實現代碼到GUI
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()
出了什麼問題,你有什麼? – zondo
一切,但「def轉換器」是從其他地方「複製」,因爲即時通訊仍在學習,但我不知道如何正確地將數學添加到代碼中,所以「def轉換器」中的一切都是我試圖找出它 – Chaost
你有幾個問題。你應該調用'self.converter()'作爲OnPressEnter()的第一行。您不能將字符串添加到浮動。你應該做更多的事情,比如'「{}就是這個區域。」。format(self.convertVariable.get())'。 'converter()'定義'convertVariable',但設置'convert'。將'self.convert'切換到'self.convertVariable'。 'self.entryVariable'是一個'StringVar',所以記住在嘗試對它進行數學運算之前先轉換它。那將是'float(...)',或者只是使用'DoubleVar'。我認爲我沒有忘記任何東西,但告訴我它是否無效。 – zondo