"""Окно показывает статистику бота""" from typing import Any from tkinter import Toplevel, LabelFrame, Label, Frame, Button from pakApp.pakGui.pakWinState.pakFrmShahta.modFrmShahta import FrmShahta from pakApp.pakGui.pakWinState.pakFrmPolygon.modFrmPolygon import FrmPolygon class WinState(Toplevel): """Окно состояния бота""" def __init__(self, win_main: Any, name_bot: str) -> None: Toplevel.__init__(self, master=win_main) self.title("Статистика бота: "+name_bot) self.geometry("800x640") self.win_main = win_main self.name = name_bot if True: # Кнопки команд self.frm_cmd = Frame(self, border=3, relief="sunken") self.frm_cmd.pack(side="bottom", fill="x") self.btn_close = Button(self.frm_cmd, text="Закрыть", command=self.close) self.btn_close.pack(side="right") if True: # Ресурсы танка self.frm_resource = LabelFrame(self, text="Ресурсы", border=3, relief="sunken") self.frm_resource.pack(side="top", fill="x") self.lbl_auto = Label(self.frm_resource, text="Автоигра: false", border=3, relief="ridge", anchor="w") self.lbl_auto.pack(side="top", fill="x") self.lbl_is_work = Label(self.frm_resource, text="В работе: false", border=3, relief="ridge", anchor="w") self.lbl_is_work.pack(side="top", fill="x") self.lbl_toplivo = Label(self.frm_resource, text="Топливо: 0", border=3, relief="ridge", anchor="w") self.lbl_toplivo.pack(side="top", fill="x") self.lbl_slava = Label(self.frm_resource, text="Слава: 0", border=3, relief="ridge", anchor="w") self.lbl_slava.pack(side="top", fill="x") self.lbl_serebro = Label(self.frm_resource, text="Серебро: 0", border=3, relief="ridge", anchor="w") self.lbl_serebro.pack(side="top", fill="x") self.lbl_zoloto = Label(self.frm_resource, text="Золото: 0", border=3, relief="ridge", anchor="w") self.lbl_zoloto.pack(side="top", fill="x") self.lbl_level = Label(self.frm_resource, text="Уровень: 0", border=3, relief="ridge", anchor="w") self.lbl_level.pack(side="top", fill="x") self.lbl_progress = Label(self.frm_resource, text="Прогресс: 0", border=3, relief="ridge", anchor="w") self.lbl_progress.pack(side="top", fill="x") if True: # Статистика танка self.frm_tank = LabelFrame(self, text="Танк", border=3, relief="sunken") self.frm_tank.pack(side="top", fill="x") self.frm_tank_stat = LabelFrame(self.frm_tank, text="Параметры", border=3, relief="sunken") self.frm_tank_stat.pack(side="left") self.lbl_ataka = Label(self.frm_tank_stat, text="Атака: 0", border=3, relief="ridge", anchor="w") self.lbl_ataka.pack(side="top", fill="x") self.lbl_brona = Label(self.frm_tank_stat, text="Броня: 0", border=3, relief="ridge", anchor="w") self.lbl_brona.pack(side="top", fill="x") self.lbl_tochnost = Label(self.frm_tank_stat, text="Точность: 0", border=3, relief="ridge", anchor="w") self.lbl_tochnost.pack(side="top", fill="x") self.lbl_prochnost = Label(self.frm_tank_stat, text="Прочность: 0", border=3, relief="ridge", anchor="w") self.lbl_prochnost.pack(side="top", fill="x") self.lbl_mosh = Label(self.frm_tank_stat, text="Танковая мощь: 0", border=3, relief="ridge", anchor="w") self.lbl_mosh.pack(side="top", fill="x") self.frm_basa = LabelFrame(self, text="База", border=3, relief="sunken") self.frm_basa.pack(side="top", fill="x") self.frm_shahta = FrmShahta(self.frm_basa) self.frm_poligon = FrmPolygon(self.frm_basa) self.auto_update() def auto_update(self): """Само-обновление окна""" self.after(5000, self.auto_update) app = self.win_main.app res = app.logic.get_stat_bot(self.name) self.lbl_auto["text"] = "АвтоИгра: " + res["isAuto"] self.lbl_is_work["text"] = "В работе: " + res["isWork"] self.lbl_toplivo["text"] = "Топливо: " + res["топливо"] self.lbl_slava["text"] = "Слава: " + res["слава"] self.lbl_serebro["text"] = "Серебро: " + res["серебро"] self.lbl_zoloto["text"] = "Золото: " + res["золото"] self.lbl_level["text"] = "Уровень: " + res["уровень"] self.lbl_progress["text"] = "Прогресс: " + res["прогресс"] self.lbl_ataka["text"] = "Атака: " + res["атака"] self.lbl_brona["text"] = "Броня: " + res["броня"] self.lbl_tochnost["text"] = "Точность: " + res["точность"] self.lbl_prochnost["text"] = "Прочность: " + res["прочность"] self.lbl_mosh["text"] = "Танковая мощь: " + res["мощь"] self.frm_shahta.upstat(res) self.frm_poligon.upstat(res) def close(self): """Закрывает окно по требованию""" self.destroy()