Je travaille sur ce code pour calculer certaines valeurs trouvées dans un fichier gcode. Il y a une valeur de volume trouvée dans le fichier gcode chargé, puis la masse et le prix sont trouvés. Je voulais que l'on puisse entrer ces variables en utilisant la fonction d'entrée, mais aussi qu'il y ait des valeurs par défaut en premier lieu. Mon problème est que la fenêtre d'entrée n'efface pas et n'accepte pas d'autres valeurs, seules les valeurs par défaut sont présentes. J'utilise entry.delete (0, END) mais ça ne marche pas.La fenêtre d'entrée dans tkinter ne supprime pas
Voici le code:
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)
Veuillez essayer de réduire ce code au plus petit programme possible illustrant le problème. Voir http://www.stackoverflow.com/help/mcve –
Le seul endroit dans votre code où vous appelez la méthode 'delete' d'un widget d'entrée est quand vous créez d'abord le widget (et il est créé vide, donc cela n'a pas effet). –
N'est-il pas créé rempli avec les valeurs d'exemple? C'est ainsi que je l'ai compris et donc j'ai placé supprimer juste après. Je pensais que cette suppression est déclenchée chaque fois que la souris est placée dans la zone de saisie. – Bart