Я хотел бы вернуться на ту же страницу, если поле не заполнено.
Вот что я пробовал до сих пор:
class Tenants(tk.Frame):
def __init__(self, master):
tk.Frame.__init__(self,master)
self.tenant_entries=[]
self.create_widgets(master)
def create_widgets(self,master):
label = tk.Label(self, text="Insert the name of the tenants")
start_button = tk.Button(self, text="Return to start page", command=lambda: master.switch_frame(StartPage))
new_tenant_button = tk.Button(self, text="Add tenant", command=self.add_tenant)
new_tenant_button.bind("<Return>", self.add_tenant)
new_tenant_button.grid(row=len(self.master.tenants), column=3, padx=4, pady=6, sticky="W")
next_button=tk.Button(self, text="Next", command=lambda:[master.switch_frame(Networks)] and self.tenants())
next_button.grid(row=1500, column=5,padx=4, pady=6, sticky="W")
label.pack(side="top", fill="x", pady=10)
start_button.pack()
new_tenant_button.pack()
next_button.pack()
for index, tenant in enumerate(self.master.tenants):
self.render_tenant_field(tenant, index)
def add_tenant(self):
self.master.tenants.append({'variable': tk.StringVar(self.master)})
self.master.switch_frame(Tenants)
def render_tenant_field(self, tenant, index):
entry_field = tk.Entry(self, textvariable=tenant['variable'])
entry_field.grid(row=index, column=0, columnspan=2, padx=4, pady=6, sticky="NEWS")
entry_field.pack()
self.tenant_entries.append(tenant['variable'])
def tenants(self):
with open("/home/dante/tenants.yml", "w") as f:
if self.tenant_entries:
f.write("--- #" + "\n")
f.write("clouds:" + "\n")
for ent in self.tenant_entries:
value=ent.get()
if value:
f.write(" "+value+":"+ "\n")
f.write(" username: admin"+"\n")
else:
tkMessageBox.showerror("tk", "No tenants defined!")
С этим кодом я получаю сообщение об ошибке, но после нажатия кнопки ОК переходит на следующую страницу. Я хотел бы, чтобы после нажатия OK вернуться на ту же страницу (Арендаторы), чтобы заполнить это поле.
Как мне это сделать?