-
Notifications
You must be signed in to change notification settings - Fork 0
/
KKAFIO.py
48 lines (41 loc) · 1.64 KB
/
KKAFIO.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
import customtkinter
import platform
import customtkinter
import ctypes
from gui.frames.sidebar import Sidebar
from gui.frames.logger import LoggerTextBox
from gui.util.config import Config
from gui.util.linker import Linker
class App(customtkinter.CTk):
def __init__(self):
super().__init__("#18173C")
self.configure_window()
linker = Linker(self)
config = Config(linker, "config.json")
sidebar = Sidebar(self, linker, config, fg_color="#25224F")
sidebar.grid(row=0, column=0, sticky="nsw")
logger = LoggerTextBox(self, linker, config, fg_color="#262250")
logger.grid(row=0, column=2, pady=20, sticky="nsew")
config.load_config()
def configure_window(self):
self.title("KKAFIO")
self.geometry(f"{1500}x{850}")
self.iconbitmap('gui/icons/karin.ico')
"""
solution to Settings Frame and Logger Frame widths not being
consistent between different windows scaling factors
"""
self.scaling_factor = self.get_scaling_factor()
self.grid_columnconfigure(0, weight=0)
self.grid_columnconfigure(1, weight=0, minsize=650*self.scaling_factor)
self.grid_columnconfigure(2, weight=1, minsize=506*self.scaling_factor)
self.grid_rowconfigure(0, weight=1)
def get_scaling_factor(self):
system = platform.system()
if system == 'Windows':
user32 = ctypes.windll.user32
return user32.GetDpiForSystem() / 96.0
return 1.0 # Default scaling factor for unknown or unsupported systems
if __name__ == "__main__":
app = App()
app.mainloop()