mirovlad

Main vs CarProperties

Jun 9th, 2023
109
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.75 KB | None | 0 0
  1. (1)
  2. В Main пишеш функция, която да можеш да викнеш при ъпдейт на базата, да кажем че се казва "redraw_buttons":
  3. class Main:
  4. ...
  5. def redraw_buttons(self):
  6. # Прочитаме колите от базата
  7. ...
  8. # Изчертаваме бутони за новите коли
  9. ...
  10.  
  11. (2)
  12. Пак в Main там където правиш обекта от клас CarProperties, подаваш тая функция на коструктора -- или директно, или през ламбда
  13. Вариант с директно подаване:
  14. class Main:
  15. ...
  16. def new_data(self):
  17. self.car_prop = CarProperties(self.redraw_buttons)
  18. ...
  19.  
  20. Вариант с подаване през ламбда:
  21. class Main:
  22. ...
  23. def new_data(self):
  24. self.car_prop = CarProperties(lambda: self.redraw_buttons())
  25. ...
  26.  
  27.  
  28. (3)
  29. CarProperties конструктора го правиш да приема като параметър функция, която да запомни в себе си
  30. По подразбиране може да я сложиш None
  31. class CarProperties:
  32. def _init_(self, on_db_update = None):
  33. self.properties = tk.Tk()
  34. self.on_db_update = on_db_update
  35. ...
  36.  
  37.  
  38. (2)
  39. Във CarProperties, след като запишеш новата кола в базата, изпълняваш:
  40. # Съставяш речник за новата кола
  41. new_car_dict = { "nomer": …, "obem_rezervoar": …, };
  42. # Записваш новата кола някакси в базата:
  43. ...
  44. # Изпълняваш запомнената функция, ако има таква:
  45. if (self.on_db_update):
  46. self.on_db_update()
  47.  
  48.  
  49.  
Add Comment
Please, Sign In to add comment