Я бы проверил поле с помощью оператора if / else.
Обновление:
Вот моя следующая попытка, основанная на ваших комментариях.
Я не уверен на 100%, что это сработает отлично, но после моих испытаний он пытается сделать то, что вы хотите.
Я создал несколько условных операторов if / else, которые будут проверять, существует ли конкретная комбинация символов в строке. Если это так, то переформатируйте, чтобы удалить ноль.
Посмотрите на приведенный ниже код.
import tkinter as tk
from tkinter import messagebox
master = tk.Tk()
string_converter_main = tk.StringVar()
entry1 = tk.Entry(master, width = "33", textvariable = string_converter_main, font = ("Helvetica", 23), bg="gray13", fg = "ghostwhite", bd="10")
entry1.grid(row=1, column=0, columnspan=5, sticky="nsew")
def check_format_of_string(event):
if event.keysym not in ["BackSpace", "Control_L", "Control_R", "Delete"] and "0" in entry1.get():
word_list = entry1.get().split(" ")
reformated_word_list = []
final_string = ""
for word_section in word_list:
if word_section[:2] in ["01", "02", "03", "04", "05", "06", "07", "08", "09"]:
reformated_word_list.append(word_section[1:])
elif word_section == "00":
reformated_word_list.append("")
else:
reformated_word_list.append(word_section)
for item in reformated_word_list:
cs = "{} {}".format(final_string, item)
if cs[-3:] in ["0 ", " 0 "]:
cs = cs[:-2]
if cs[-2:] in [" "]:
cs = cs[:-1]
final_string = cs
entry1.delete(0, "end")
entry1.insert(0, final_string.lstrip())
entry1.bind("<Key>",check_format_of_string)
master.mainloop()