Обновление tk экрана после закрытие дочернего окна по кнопке OK
Моя программа с помощью запросов к БД SQLite, формирует список кнопок при нажатии на которые пользователю открывается дочернее окно с формой для заполнения. После заполнения формы и нажатия кнопки Ok, форма для заполнения закрывается. Необходимо чтобы родительское окно обновилось (после данного обновления родительское окно не будет содержать нажатую ранее кнопку).
P.S родительский экран не стартовый (программа запускается не с него)
класс №1 запрос к БД и вывод списка удовлетворяющего условию на экран на экран
class PurchaseClient2 :
def __init__(self, master):
self.master=master
array=CheckButtonOn.functionOutputInformationPurchaseForClient(self)
if (len(array)==0):
self.labelPurchaseNull=tk.Label(self.master, text=String.textNullResult, font="Century 14", bg=Color.colorMainWindow)
self.labelPurchaseNull.grid(column=0, row=1, columnspan=5, pady=10, padx=100)
else :
for i in range (0, len(array), 1):
self.buttonNewPurchase=tk.Button(self.master, text=String.textSayPay+str(array[i]), font="Century 14", width=50, bd=0, bg=Color.colorButton1, command=lambda i=i: self.clickButtonPay(int(array[i])))
self.buttonNewPurchase.grid(column=0, row=int(i), columnspan=5, pady=10, padx=10)
def clickButtonPay (self, id_request) :
self.click_Designer=tk.Toplevel(self.master)
self.app=DesignerSize(self.click_Designer, id_request)
класс 2 Экран с формой для заполнения
class DesignerSize (TestInput.TestInputLayoutOne, TestInputNumber2.TestInputLayoutTwo) :
def __init__(self, master, id_request) :
self.master=master
self.DesignerJobe = tk.Label(self.master, text=String.textApplicationForManufacturing, font="Century 14",
bg=Color.colorMainWindow)
self.DesignerJobe.grid(column=0, row=0, columnspan=5, pady=10, padx=100)
array=DesignerSize.functionRequestOnDesigner(self, int(id_request))
request=String.textName + ": "+str(array[0]) +"\n"+String.textAddress+": "+str(array[1])+"\n"+String.textNumberPhone+": "+str(array[2])+"\n"+String.textTypeRequest+": "+str(array[3])+"\n"+String.textComment+": "+str(array[4]).split("\\")[0]
self.requestClient = tk.Label(self.master, text=request, justify="left", font="Century 14",
bg=Color.colorInfoRequest)
self.requestClient.grid(column=0, row=1, columnspan=2, pady=10, padx=100)
self.orderDescription=tk.Label(self.master, text=String.textOrderDescription, font="Century 14",
bg=Color.colorMainWindow)
self.orderDescription.grid(column=0, row=2,columnspan=2, pady=10, padx=10)
self.entOrderDescription = tk.Entry(self.master,width=35,bd=0,font="Century 14", bg=Color.colorEntry)
self.entOrderDescription.grid(column=2, columnspan=3, row=2, pady=10, padx=10)
self.dimensions=tk.Label(self.master, text=String.textDimensions, font="Century 14",
bg=Color.colorMainWindow)
self.dimensions.grid(column=0, row=3,columnspan=2, pady=10, padx=10)
self.entDimensions = ScrolledText(self.master,width=35, height=5,bd=0,font="Century 14", bg=Color.colorEntry)
self.entDimensions.grid(column=2, columnspan=3, row=3, pady=10, padx=10)
self.prepaymentAmount=tk.Label(self.master, text=String.textPrepaymentAmount, font="Century 14",
bg=Color.colorMainWindow)
self.prepaymentAmount.grid(column=0, row=4,columnspan=2, pady=10, padx=10)
self.entPrepaymentAmount = tk.Entry(self.master,width=35,bd=0,font="Century 14", bg=Color.colorEntry)
self.entPrepaymentAmount.grid(column=2, columnspan=3, row=4, pady=10, padx=10)
self.dataRequest=tk.Label(self.master, text=String.textDateNow, font="Century 14",
bg=Color.colorMainWindow)
self.dataRequest.grid(column=0, row=5,columnspan=2, pady=10, padx=10)
self.entDataRequest = tk.Label(self.master, text=String.textDate, font="Century 14",
bg=Color.colorMainWindow)
self.entDataRequest.grid(column=2, row=5,columnspan=3, pady=10, padx=10)
id=int(id_request)+1000
if DesignerSize.functionTestRequestEstimate(id)==1:
self.buttonOk=tk.Button(self.master, text=String.textButtonOk, font="Century 14", width=10, bd=0, bg=Color.colorButton, command=self.clickOkAddEstimate(id_request))
self.buttonOk.grid(column=1, row=7, pady=15, padx=10)
else :
self.buttonOk=tk.Button(self.master, text=String.textButtonIssueAReport, font="Century 14", width=20, bd=0, bg=Color.colorButton, command=lambda : self.clickOkAddEstimate(int(id_request)))
self.buttonOk.grid(column=1, row=7, pady=15, padx=10)
self.buttonClear=tk.Button(self.master, text=String.textButtonClear, font="Century 14", width=10, bd=0, bg=Color.colorButton, command=self.clickCleanerEstimate)
self.buttonClear.grid(column=2, row=7, pady=15, padx=10)
def clickCleanerEstimate (self) :
self.entOrderDescription.delete(0, 'end')
self.entDimensions.delete(1.0, 'end')
self.entPrepaymentAmount.delete(0, 'end')
def clickOkAddEstimate (self, id) :
textEntOrderDescription=self.entOrderDescription.get()
textEntDimensions=self.entDimensions.get("1.0", tk.END)
textEntPrepaymentAmount=self.entPrepaymentAmount.get()
if DesignerSize.functionUpdateRequestTable(self, int(id), str(textEntOrderDescription), str(textEntDimensions), str(textEntPrepaymentAmount))==1 :
tk.messagebox.showinfo(title="Info", message=String.textAddRequestSuccrsfully)
DesignerSize.clickCleanerEstimate(self)
else:
tk.messagebox.showerror(title="Warrning", message=String.textNoAddRequestSuccrsfully)
Ответы (1 шт):
Вы можете использовать метод root.update() (для обновления окна целиком) или widget.update() (для обновления конкретного виджета).