|
|
@@ -2,10 +2,13 @@
|
|
|
Фрейм статуса главного окна
|
|
|
"""
|
|
|
|
|
|
+from collections.abc import Callable
|
|
|
from datetime import date
|
|
|
import time
|
|
|
from tkinter import Frame, Label, Tk, Button
|
|
|
|
|
|
+from lev0 import Logger
|
|
|
+
|
|
|
|
|
|
class FrmStatus(Frame):
|
|
|
"""
|
|
|
@@ -13,6 +16,7 @@ class FrmStatus(Frame):
|
|
|
"""
|
|
|
|
|
|
def __init__(self, winMain: Tk) -> None:
|
|
|
+ self.__log = Logger("FrmStatus")
|
|
|
Frame.__init__(self, master=winMain, border=3, relief="raised")
|
|
|
self.pack(fill="x", side="bottom")
|
|
|
self.__lbl_date = Label(self, text="Date: 2024-01-01",
|
|
|
@@ -26,16 +30,36 @@ class FrmStatus(Frame):
|
|
|
command=self.__exit, border=2,
|
|
|
relief="groove", bg="red")
|
|
|
self.__btn_exit.pack(side="right")
|
|
|
+ self.__fn_step: Callable[[], None] | None = None
|
|
|
+ self.__btn_step = Button(self, text="Step",
|
|
|
+ command=self.__step, border=2,
|
|
|
+ relief="groove", bg="yellow")
|
|
|
+ self.__btn_step.pack(side="left")
|
|
|
+
|
|
|
+ def set_fn_step(self, fn_step: Callable[[], None]) -> None:
|
|
|
+ """
|
|
|
+ Устанавливает функцию для передачи значения
|
|
|
+ """
|
|
|
+ self.__fn_step = fn_step
|
|
|
+
|
|
|
+ def __step(self) -> None:
|
|
|
+ """
|
|
|
+ Выполнение шага
|
|
|
+ """
|
|
|
+ self.__log("step!")
|
|
|
+ if self.__fn_step is not None:
|
|
|
+ self.__fn_step()
|
|
|
|
|
|
def __exit(self) -> None:
|
|
|
"""
|
|
|
Выход из программы
|
|
|
"""
|
|
|
+ self.__log("exit")
|
|
|
exit(0)
|
|
|
|
|
|
def __next_tick(self) -> None:
|
|
|
"""
|
|
|
- Следующий тик
|
|
|
+ Следующий тик для меток времени
|
|
|
"""
|
|
|
self.__lbl_date["text"] = f"Date: {date.today()}"
|
|
|
self.__lbl_time["text"] = f"Time: {time.strftime('%H:%M:%S')}"
|