Ver código fonte

d01 Обновление элементов главного окна

SVI 2 anos atrás
pai
commit
287dfef53d

+ 3 - 0
.gitignore

@@ -10,3 +10,6 @@ out.log
 run.py
 test.py
 .vscode
+desktop/win_main/__pycache__
+desktop/win_main/frm_down/__pycache__
+desktop/win_main/main_menu/__pycache__

+ 13 - 0
desktop/desktop.py

@@ -0,0 +1,13 @@
+"""Пускач для десктоп-клиента сервера вар-танк"""
+
+from win_main import win_main
+
+
+def main() -> None:
+    """Главная функци клиента"""
+    win: win_main.WinMain = win_main.WinMain()
+    win.run()
+
+
+if __name__ == "__main__":
+    main()

+ 21 - 0
desktop/win_main/frm_down/frm_down.py

@@ -0,0 +1,21 @@
+"""Нижний фрейм главного окна"""
+import tkinter
+
+
+class FrmDown(tkinter.Frame):
+    """Нижний фрейм главного окна"""
+    def __init__(self, win: tkinter.Tk) -> None:
+        tkinter.Frame.__init__(self, win)
+        self.win: tkinter.Tk = win
+        self.btn_exit: tkinter.Button = tkinter.Button(self, text="Выход")
+        self.btn_exit["command"] = self.quit
+        self.btn_exit["fg"] = "#f00"
+        self.btn_exit["bg"] = "#eee"
+        self.btn_exit["border"] = 3
+        self.btn_exit["relief"] = "raised"
+        self.btn_exit.pack(expand=True, side="right", fill="x")
+        self.pack(expand=False, side="bottom", fill="x")
+
+    def quit(self) -> None:
+        print("FrmDown.quit()")
+        self.win.destroy()

+ 25 - 0
desktop/win_main/main_menu/main_menu.py

@@ -0,0 +1,25 @@
+"""Меню главного окна"""
+
+import tkinter
+
+
+class MainMenu(tkinter.Menu):
+    """Главное меню главного окна"""
+    def __init__(self, win: tkinter.Tk) -> None:
+        tkinter.Menu.__init__(self, master=win)
+        self.win: tkinter.Tk = win
+        mnu_file: tkinter.Menu = tkinter.Menu(master=self)
+        mnu_file.add_command(label="Логин", command=self.login)
+        mnu_file.add_separator()
+        mnu_file.add_command(label="Выход", command=self.quit)
+        self.add_cascade(label="Файл", menu=mnu_file)
+        win.config(menu=self)
+
+    def login(self) -> None:
+        """Выполняет логин на сервер"""
+        print("MainMenu.login()")
+
+    def quit(self) -> None:
+        """Выполняет выход из приложения"""
+        print("MainMenu.quit()")
+        self.win.quit()

+ 20 - 0
desktop/win_main/win_main.py

@@ -0,0 +1,20 @@
+"""Главное окно клиента вар-танка"""
+import tkinter
+from .frm_down import frm_down
+from .main_menu import main_menu
+
+
+class WinMain(tkinter.Tk):
+    """Главное окно клинта вартанка"""
+    def __init__(self) -> None:
+        tkinter.Tk.__init__(self)
+        self.wm_title("WarTank")
+        self.minsize(640, 480)
+        self.frm_down: frm_down.FrmDown = frm_down.FrmDown(self)
+        "Нижний фрейм главного окна"
+        self.menu: main_menu.MainMenu = main_menu.MainMenu(self)
+        "Меню главного окна"
+
+    def run(self) -> None:
+        """Запускает графику в работу"""
+        self.mainloop()