Files
cyzg/main.py
2025-08-20 16:25:51 +08:00

92 lines
1.7 KiB
Python

import tkinter as tk
from tkinter import ttk
from backend import Backend
from components import *
# 后端
c_backend = Backend()
# 创建主窗口
root = tk.Tk()
root.title("zrx")
root.geometry("1000x900")
root.configure(bg=BG_COLOR)
# 字体文件
fonts = Fonts()
notebook = ttk.Notebook(root)
notebook.pack(fill='both', expand=True, padx=10, pady=10)
style = ttk.Style()
style.theme_use("winnative")
# 自定义复选框样式
style.configure(
"Custom.TCheckbutton",
font=(FONT_FAMILY, 14),
background=BG_COLOR,
foreground=FG_COLOR,
padding=8
)
style.map(
"Custom.TCheckbutton",
background=[("active", BG_COLOR)],
foreground=[("active", ACCENT_COLOR)]
)
# 页面0
frame0 = ttk.Frame(notebook, padding=20)
notebook.add(frame0, text="主页")
page0 = Page0(frame0,fonts,c_backend)
page0.init()
# 页面1
frame1 = ttk.Frame(notebook, padding=20)
notebook.add(frame1, text="设置")
top_options = c_backend.get_source_type()
page1 = Page1(frame1,top_options,bottom_options)
# 页面2
frame2 = ttk.Frame(notebook, padding=20)
notebook.add(frame2, text="统计")
page2 = Page2(frame2)
# 事件
def page0_event():
c_backend.reset_time()
c_backend.set_config(
page1.top_selected(),
page1.bottom_selected()
)
def page1_event():
pass
def page2_event():
r = c_backend.get_statistics()
print(r)
page2.update_data(r)
tab_handlers = [
page0_event,
page1_event,
page2_event,
]
def on_space_pressed(event):
page0.init()
def on_tab_changed(event):
try:
tab_handlers[notebook.index("current")]()
except Exception as e:
print(e)
# 绑定事件
root.bind('<space>', on_space_pressed)
notebook.bind("<<NotebookTabChanged>>", on_tab_changed)
# 运行主循环
root.mainloop()