Я работаю над этим кодом для вычисления определенных значений, содержащихся в файле gcode. Существует одно значение объема, найденное в загруженном файлом gcode кнопки, а затем найдена масса и цена. Я хотел, чтобы у кого-то было возможность вводить эти переменные, используя функцию ввода, но в первую очередь есть значения по умолчанию. Моя проблема заключается в том, что окно ввода не очищается и принимает другие значения, только те по умолчанию. Я использую entry.delete (0, END), но он не работает.Окно ввода в tkinter не удаляется
Это код:
def delete_entry(self):
e.delete(0, END)
return None
# def Statusbar(self):
# self.stat1.set("Waiting for the file... ")
#Creation of init_window
def init_window(self):
# changing the title of our master widget
self.master.title("Filament Data")
# allowing the widget to take the full space of the root window
self.pack(fill=BOTH, expand=1)
# creating a menu instance
menu = Menu(self.master)
self.master.config(menu=menu)
# create the file object)
file = Menu(menu)
help = Menu(menu)
# adds a command to the menu option, calling it exit, and the command it runs on event is client_exit
file.add_command(label="Exit", command=self.client_exit)
help.add_command(label="About", command=self.about_popup)
#added "file" to our menu
menu.add_cascade(label="File", menu=file)
menu.add_cascade(label="Help", menu=help)
#Creating the intro label
l_instruction = Label(self, justify=CENTER, compound=TOP, text="Enter density and price per \n gram of your material and then \n load GCODE file to find volume, \n weight and price of used filament.")
l_instruction.grid(columnspan=2, ipady=10)
#Creating the button
gcodeButton = Button(self, text="Load GCODE", command=self.read_gcode)
gcodeButton.grid(row=3, columnspan=2, ipady=10)
#Entry fields for density and price per gram
e = Entry(self, justify=CENTER, width=5)
# e.delete(0, END)
e.insert(0, "1.13")
e.grid(row=1, column=0)
e.bind("<Button-1>", self.delete_entry)
self.density = float(e.get())
e_label = Label(self, text="D")
e_label.grid(row=2, column=0)
e1 = Entry(self, justify=CENTER, width=5)
# e1.delete(0, END)
e1.insert(0, "0.175")
e1.grid(row=1, column=1)
self.price = float(e1.get())
e1_label = Label(self, text="$")
e1_label.grid(row=2, column=1)
Попробуйте уменьшить этот код до наименьшей возможной программы, которая иллюстрирует проблему. См. Http://www.stackoverflow.com/help/mcve –
Единственное место в вашем коде, где вы называете метод 'delete' виджета ввода, - это когда вы сначала создаете виджет (и он создан пустым, так что нет эффект). –
Разве он не заполнен образцами? Вот как я это понял, и поэтому я сразу же удалил их. Я думал, что это удаление запускается всякий раз, когда мышь помещается в поле ввода. – Bart