From 1c2a7597a151cf18fb875261973a9e000a0cd6b6 Mon Sep 17 00:00:00 2001 From: NTGNguyen <23521049@gm.uit.edu.vn> Date: Mon, 9 Sep 2024 15:38:21 +0700 Subject: [PATCH] =?UTF-8?q?=E2=99=BB=EF=B8=8F=20Refactor:Using=20more=20cl?= =?UTF-8?q?ass=20instead=20of=20using=20all=20in=20home=5Fpage?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/GUI/screen/form_frame.py | 20 ++++++++++++ src/GUI/screen/home_page.py | 12 +++++--- src/GUI/screen/main_page.py | 59 ++++++++++++++++++++++++++---------- 3 files changed, 70 insertions(+), 21 deletions(-) create mode 100644 src/GUI/screen/form_frame.py diff --git a/src/GUI/screen/form_frame.py b/src/GUI/screen/form_frame.py new file mode 100644 index 0000000..612d946 --- /dev/null +++ b/src/GUI/screen/form_frame.py @@ -0,0 +1,20 @@ +"""The Form to input num of points""" +import tkinter as tk + + +class FormFrame(tk.Frame): + """The Form Class + + Args: + tk (Frame): Frame modules in tkinter + """ + + def __init__(self, controller): + super().__init__(controller) + self.pack(side=tk.RIGHT, padx=10, pady=10) + + self.label = tk.Label(self, text="Number of Points:") + self.label.pack(side=tk.TOP, padx=5) + + self.entry = tk.Entry(self) + self.entry.pack(side=tk.TOP, padx=5) diff --git a/src/GUI/screen/home_page.py b/src/GUI/screen/home_page.py index 6a5f5fc..54c5fcc 100644 --- a/src/GUI/screen/home_page.py +++ b/src/GUI/screen/home_page.py @@ -1,9 +1,9 @@ """The Home Page element(parent is app)""" import tkinter as tk -from src.constants import BANNER +from src.constants import BANNER_IMG_PATH_REMOVEBG -from .start_button import StartButton +from .button import StartButton class HomePage(tk.Frame): @@ -18,8 +18,10 @@ def __init__(self, parent, controller): super().__init__(parent) self.controller = controller - label = tk.Label(self, text=BANNER) - label.pack(pady=20) + self.banner_image = tk.PhotoImage(file=BANNER_IMG_PATH_REMOVEBG) + label = tk.Label(self, image=self.banner_image) + label.pack(side="top", fill="both", expand=True) button = StartButton(self, controller, "MainPage") - button.pack() + button.config(width=20, height=3) + button.pack(side="bottom", pady=150) diff --git a/src/GUI/screen/main_page.py b/src/GUI/screen/main_page.py index e45739d..6c4d523 100644 --- a/src/GUI/screen/main_page.py +++ b/src/GUI/screen/main_page.py @@ -1,10 +1,21 @@ +from src.constants import DRAW_POINTS_TEXT, NEXT_STEP_BUTTON_TEXT import tkinter as tk from tkinter import messagebox from src.GUI.coordinate_system.coordinate_system import CoordinateSystem +from .form_frame import FormFrame + +from .button import ButtonInFrame2 + class MainPage(tk.Frame): + """MainPage class heritant from Frame in tkinter modules + + Args: + tk (Frame): Frame from Tkinter modules + """ + def __init__(self, parent, controller): super().__init__(parent) self.controller = controller @@ -13,27 +24,37 @@ def __init__(self, parent, controller): self, bg='white') self.coordinate_system.pack(fill=tk.BOTH, expand=True, padx=300) - self.form_frame = tk.Frame(self) - self.form_frame.pack(side=tk.RIGHT, padx=10, pady=10) + self.form_frame = FormFrame(self) + self.form_frame.pack() + # self.form_frame = tk.Frame(self) + # self.form_frame.pack(side=tk.RIGHT, padx=10, pady=10) + + # self.label = tk.Label(self.form_frame, text="Number of Points:") + # self.label.pack(side=tk.TOP, padx=5) - self.label = tk.Label(self.form_frame, text="Number of Points:") - self.label.pack(side=tk.TOP, padx=5) + # self.entry = tk.Entry(self.form_frame) + # self.entry.pack(side=tk.TOP, padx=5) - self.entry = tk.Entry(self.form_frame) - self.entry.pack(side=tk.TOP, padx=5) + # self.button = tk.Button( + # self.form_frame, text="Draw Points", command=self.draw_points) + # self.button.pack(side=tk.TOP, padx=5) + self.add_points_button = ButtonInFrame2(DRAW_POINTS_TEXT, self.form_frame, self.draw_points) + self.next_step_button = ButtonInFrame2(NEXT_STEP_BUTTON_TEXT, self.form_frame, self.start_algo) + # self.next_step_button = tk.Button( + # self.form_frame, text="Next Step", command=self.start_algo) + # self.next_step_button.pack(side=tk.TOP, padx=5) - self.button = tk.Button( - self.form_frame, text="Draw Points", command=self.draw_points) - self.button.pack(side=tk.TOP, padx=5) + def draw_points(self) -> None: + """Reads the number of clusters from the entry and draws them. - self.next_step_button = tk.Button( - self.form_frame, text="Next Step", command=self.start_algo) - self.next_step_button.pack(side=tk.TOP, padx=5) + Args: + self(MainPage) - def draw_points(self): - """Reads the number of clusters from the entry and draws them.""" + Returns: + None + """ try: - num_points = int(self.entry.get()) + num_points = int(self.form_frame.entry.get()) if num_points > 0 and num_points < 6: self.coordinate_system.draw_random_points(num_points) else: @@ -44,5 +65,11 @@ def draw_points(self): "Invalid input", "Please enter a valid number of points.") def start_algo(self): - """Triggers the next step in the process.""" + """Triggers the next step in the process. + Args: + self(MainPage) + + Returns: + None + """ self.coordinate_system.start_algor()