Im sehr neu zu machen GUI in Python und ich habe überall gesucht, aber nicht finden, was ich suche. Ich möchte einfach ein Programm haben, bei dem der Benutzer einen Radius eingibt und das Programm den Bereich dieses Radius in einem Etikett ausdruckt, entweder mit einem Klick oder mit der Taste. Vielen Dank im Voraus :)Python, wie man Code zur GUI einführt
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()
Was mit falsch ist, was Sie haben? – zondo
alles, aber der "def-Konverter" wird von woanders "kopiert", weil ich noch lerne, aber ich kann nicht herausfinden, wie man die Mathematik richtig in den Code einfügt, also versucht alles in "def converter" es herauszufinden – Chaost
Sie haben ein paar Probleme. Sie sollten 'self.converter()' als erste Zeile in 'OnPressEnter()' aufrufen. Sie können keine Strings zu Floats hinzufügen. Sie sollten etwas mehr tun wie '' {} ist der Bereich. ". Format (self.convertVariable.get())'. 'converter()' definiert 'convertVariable', setzt aber' convert'. Schalten Sie die 'self.convert' in' self.convertVariable' um. Die 'self.entryVariable' ist eine' StringVar', also denken Sie daran, sie zu konvertieren, bevor Sie versuchen, damit zu rechnen. Das wäre 'float (...)' oder einfach eine 'DoubleVar'. Ich glaube nicht, dass ich etwas vergessen habe, aber sag mir, ob es nicht funktioniert. – zondo