modWinMain.py 1.4 KB

12345678910111213141516171819202122232425262728293031323334353637383940
  1. """Главное окно приложения"""
  2. from typing import Any,Dict
  3. from tkinter import Tk,LabelFrame
  4. from pakApp.pakGui.pakWinMain.pakFrmCmd.modFrmCmd import FrmCmd
  5. from pakApp.pakGui.pakWinMain.pakFrmBot.modFrmBot import FrmBot
  6. class WinMain(Tk):
  7. def __init__(self, gui:Any)->None:
  8. Tk.__init__(self)
  9. self.app:Any=gui.app
  10. self.gui:Any=gui
  11. self.title("БотоФерма WarTank")
  12. self.geometry("800x640")
  13. self.list_bot:list[str]=[]
  14. self.listFrmBot:dict[str, FrmBot]={}
  15. def run(self)->None:
  16. self.frmCmd=FrmCmd(self)
  17. self.frmListBot=LabelFrame(self,text="Список ботов")
  18. self.frmListBot.pack(fill="both",expand=1)
  19. self.update_list_bot()
  20. self.mainloop()
  21. def update_list_bot(self)->None:
  22. """Обновляет список ботоов с сервера"""
  23. print("WinMain.update_list_bot()")
  24. list_bot:list[Dict[str,str]]=self.app.logic.get_list_bot()
  25. print(f"WinMain.update_list_bot(): list_bot={list_bot}")
  26. for dict_bot in list_bot:
  27. name=dict_bot["name"]
  28. if name not in self.list_bot:
  29. statBot=FrmBot(self.app, self.frmListBot, name)
  30. self.listFrmBot[name]=statBot
  31. self.list_bot.append(name)
  32. statBot=self.listFrmBot[name]
  33. statBot.update_state(dict_bot)
  34. self.after(5000,self.update_list_bot)