Created settings window
This commit is contained in:
parent
9f70bea72d
commit
a601a6f73a
87
settings_manager.py
Normal file
87
settings_manager.py
Normal 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()
|
Loading…
Reference in a new issue