From 62aa41162de93f24cdcf060d34e4a2bae707bb46 Mon Sep 17 00:00:00 2001 From: itsHenry <2671230065@qq.com> Date: Sat, 23 Sep 2023 17:37:35 +0800 Subject: [PATCH] feat: support scrollbar --- gui/download1.py | 23 ++++++++++++++++++++++- 1 file changed, 22 insertions(+), 1 deletion(-) diff --git a/gui/download1.py b/gui/download1.py index 5c3bde4..cd1d7c8 100644 --- a/gui/download1.py +++ b/gui/download1.py @@ -51,6 +51,9 @@ def submit(): root = ttk.Window(title='乐读视频下载器-下载', themename="morph") root.geometry("") + canvas = ttk.Canvas(root) + scrollbar = ttk.Scrollbar(root, orient="vertical", command=canvas.yview) + scrollable_frame = ttk.Frame(canvas) data = get_course(uid, token) courselist, idlist, numlist, returnlist = {}, {}, [], [] var = ttk.IntVar() @@ -64,10 +67,28 @@ def submit(): widgetlist = [] for course_name in courselist: numlist.append(course_name) - checkbutton = ttk.Checkbutton(text=course_name, bootstyle="round-toggle") + checkbutton = ttk.Checkbutton(scrollable_frame, text=course_name, bootstyle="round-toggle") checkbutton.pack(anchor='w') widgetlist.append(checkbutton) + canvas.create_window((0, 0), window=scrollable_frame, anchor="nw") + canvas.configure(yscrollcommand=scrollbar.set) + + def configure_scroll_region(event): + canvas.configure(scrollregion=canvas.bbox("all")) + + scrollable_frame.bind("", configure_scroll_region) + def mouse_scroll(event): + if event.delta > 0: + canvas.yview_scroll(-1, "units") + elif event.delta < 0: + canvas.yview_scroll(1, "units") + + root.bind("", mouse_scroll) + + canvas.pack(side="left", fill="both", expand=True) + scrollbar.pack(side="right", fill="y") + extensiveornot = ttk.Checkbutton(text='延伸课程', bootstyle="default-square-toggle", variable=var) extensiveornot.pack(anchor='w') submit = ttk.Button(text='提交', bootstyle="primary", command=submit)