"""Главное окно приложения""" from typing import Any, Dict from tkinter import Tk, LabelFrame from pakApp.pakGui.pakWinMain.pakFrmCmd.modFrmCmd import FrmCmd from pakApp.pakGui.pakWinMain.pakFrmBot.modFrmBot import FrmBot class WinMain(Tk): """Главное окно приложения""" def __init__(self, gui: Any) -> None: Tk.__init__(self) self.app: Any = gui.app self.gui: Any = gui self.title("БотоФерма WarTank") self.geometry("800x640") self.list_bot: list[str] = [] self.list_frm_bot: dict[str, FrmBot] = {} self.frm_cmd = FrmCmd(self) self.frm_list_bot = LabelFrame(self, text="Список ботов") self.frm_list_bot.pack(fill="both", expand=1) def run(self) -> None: """Запускает графику (главное окно) в работу""" self.mainloop() def update_list_bot(self) -> None: """Обновляет список ботоов с сервера""" print("WinMain.update_list_bot()") list_bot: list[Dict[str, str]] = self.app.logic.get_list_bot() print(f"WinMain.update_list_bot(): list_bot={list_bot}") for dict_bot in list_bot: name = dict_bot["name"] if name not in self.list_bot: stat_bot = FrmBot(self.app, self.frm_list_bot, name) self.list_frm_bot[name] = stat_bot self.list_bot.append(name) stat_bot = self.list_frm_bot[name] stat_bot.update_state(dict_bot) self.after(5000, self.update_list_bot)