Изменить значение записи tkinter по умолчанию в python

#python #tkinter

#python #tkinter

Вопрос:

 checkLabel = ttk.Label(win,text = "  Check Amount  ", foreground = "blue")
checkLabel.grid(row = 0 , column = 1)
checkEntry = ttk.Entry(win, textvariable = checkVariable)
checkEntry.grid(row = 1, column = 1, sticky = 'w')
  

Как мне изменить поле ввода defualt с отображения 0?

Ответ №1:

Используйте функцию виджета ввода .insert() и .delete() . Вот пример.

 entry = tk.Entry(root)
entry.insert(END, "Hello") # this will start the entry with "Hello" in it
# you may want to add a delay or something here. 
entry.delete(0, END) # this will delete everything inside the entry
entry.insert(END, "WORLD") # and this will insert the word "WORLD" in the entry.
  

Другой способ сделать это — с помощью Tkinter StrVar . Вот пример использования переменной str.

 entry_var = tk.StrVar()
entry_var.set("Hello")
entry = tk.Entry(root, textvariable=entry_var) # when packing the widget
# it should have the world "Hello" inside.
# here is your delay or you can make a function call.
entry_var.set("World") # this sets the entry widget text to "World"
  

Комментарии:

1. итак, когда я использую Entry.insert(END, «1») в своем поле ввода, я получаю 0.01, как бы я получил только 0.1?

Ответ №2:

Установите значение checkVariable to '' (пустая строка) перед созданием Entry объекта? Инструкция для использования будет

 checkVariable.set('')
  

Но тогда checkVariable должно быть a StringVar , и вам придется самостоятельно преобразовать входное значение в целое число, если вы хотите получить целочисленное значение.

Комментарии:

1. это изменит его на пустой, однако что, если я захочу установить для него значение double по умолчанию и заставить программу использовать его, если оно не изменено?

2. Используйте строковый ввод. Если ввод пустой (т.Е. Без изменений), верните значение по умолчанию. В противном случае вернуть преобразованный ввод текста?