Created settings window

This commit is contained in:
Yannis 2023-11-12 22:36:51 +01:00
parent 9f70bea72d
commit a601a6f73a
Signed by: yannis
SSH key fingerprint: SHA256:Bz8K8QiTYUudf8MlthTM9MCLfgiYf/U1md3V9g9Wo14

87
settings_manager.py Normal file
View file

@ -0,0 +1,87 @@
from tkinter import ttk, Tk, Canvas, BOTH, Frame
import time
class SettingsWindow(Tk):
def __init__(self):
super().__init__()
self.width = 220
self.height = 200
self.bg_color = "#2F2F3F"
self.text_color = "#B5B5B5"
self.field_bg_color = "#43435B"
self.active_field_bg_color = "#1C1C59"
self.outline_color = "#8B8B9E"
self.theme = ttk.Style()
self.theme.theme_use('clam')
self.theme.configure("TLabel", background=self.bg_color, foreground=self.text_color)
self.theme.configure("TEntry", background=self.bg_color, foreground=self.text_color,
fieldbackground=self.field_bg_color, bordercolor=self.outline_color,
lightcolor=self.outline_color, darkcolor=self.outline_color)
self.theme.configure("TButton", background=self.bg_color, foreground=self.text_color,
fieldbackground=self.field_bg_color, bordercolor=self.outline_color,
lightcolor=self.outline_color, darkcolor=self.outline_color)
print()
self.theme.map("TButton",
background=[('!active', self.bg_color), ('active', self.active_field_bg_color)])
self.geometry(f"{self.width}x{self.height}+{self.winfo_screenwidth()-self.width-5}+{self.winfo_screenheight()-self.height-50}")
self.overrideredirect(True)
self.focus_force()
self.config(background='grey')
self.attributes("-transparentcolor", "grey")
self.base_canvas = Canvas(self, bg="grey", highlightthickness=0)
self.round_rectangle(0, 0, self.width - 1, self.height - 1, radius=40, width=5, outline="#161616")
self.title_label = ttk.Label(self.base_canvas, text="AlcasarAuto", font=("Arial", 20), style="TLabel")
self.credential_frame = Frame(self.base_canvas, bg=self.bg_color)
self.username_label = ttk.Label(self.credential_frame, text="Username", style="TLabel")
self.password_label = ttk.Label(self.credential_frame, text="Password", style="TLabel")
self.username_entry = ttk.Entry(self.credential_frame, style="TEntry")
self.password_entry = ttk.Entry(self.credential_frame, show="", style="TEntry")
self.save_button = ttk.Button(self.base_canvas, text="Save", style="TButton")
def round_rectangle(self, x1, y1, x2, y2, radius=25, **kwargs): # Creating a rounded rectangle
"""Draw a rounded rectangle
By IJ_123 on StackOverflow"""
points = [x1 + radius, y1, x1 + radius, y1, x2 - radius, y1, x2 - radius, y1,
x2, y1, x2, y1 + radius, x2, y1 + radius, x2, y2 - radius,
x2, y2 - radius, x2, y2, x2 - radius, y2, x2 - radius, y2,
x1 + radius, y2, x1 + radius, y2, x1, y2, x1, y2 - radius, x1, y2 - radius,
x1, y1 + radius, x1, y1 + radius, x1, y1]
return self.base_canvas.create_polygon(points, **kwargs, smooth=True, fill=self.bg_color)
def setup(self):
self.title_label.pack(expand=True)
self.username_label.grid(row=0, column=0, pady=4)
self.password_label.grid(row=1, column=0, pady=4)
self.username_entry.grid(row=0, column=1, padx=8)
self.password_entry.grid(row=1, column=1, padx=8)
self.credential_frame.pack(expand=True)
self.save_button.pack(expand=True, pady=5)
self.base_canvas.pack(expand=True, fill=BOTH)
def loop(self):
self.state = "normal"
while self.state == "normal":
self.update()
if self.focus_get() is None:
self.quit()
break
time.sleep(0.05)
settings = SettingsWindow()
settings.setup()
settings.loop()