#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. Используйте строковый ввод. Если ввод пустой (т.Е. Без изменений), верните значение по умолчанию. В противном случае вернуть преобразованный ввод текста?