Tkinter画布内嵌滚动Frame未居顶且可向上滚动问题排查
Tkinter Canvas嵌入Frame居顶异常问题排查求助
我开发一款GUI工具时遇到了棘手问题:将可滚动Frame嵌入Canvas后,Frame并未处于Canvas顶部(期望是居顶显示),且Canvas还能向上滚动到Frame上方的空白区域(Frame背景为绿色,Canvas背景为黄色),这属于异常行为。我反复检查修改代码都没能解决,求各位提供排查思路,感谢!
代码如下:
import tkinter.ttk as ttk from tkinter import * root = Tk() root.title("Checklist Buddy") root.config(padx=10, pady=5) root.geometry("800x500") top_frame = Frame(root, bg="black") top_frame.grid(row=0, column=0, sticky="NSEW") mf = Frame(root, bg="brown") mf.grid(row=1, column=0, sticky="NEWS") canvas = Canvas(mf, bg="yellow") canvas.grid(row=0, column=0, sticky="NEWS") yscrollbar = ttk.Scrollbar(mf, command=canvas.yview) yscrollbar.grid(row=0, column=1, sticky="ns") canvas.bind('<Configure>', lambda e: canvas.configure(scrollregion=canvas.bbox("all"))) canvas.configure(yscrollcommand=yscrollbar.set) bpo_frame = Frame(canvas, background="green") win = canvas.create_window((0, 0), window=bpo_frame, height=100) def _on_mousewheel(event): canvas.yview_scroll(int(-1 * (event.delta / 120)), "units") def onCanvasConfigure(event): canvas.itemconfigure(win, width=event.width) canvas.bind('<Configure>', onCanvasConfigure, add="+") canvas.bind_all("<MouseWheel>", _on_mousewheel) root.columnconfigure("all", weight=1) root.rowconfigure("all", weight=1) mf.columnconfigure(0, weight=1) # mf.rowconfigure("all", weight=1) root.mainloop()
问题示意图:

内容的提问来源于stack exchange,提问作者Bumblebee
相关产品推荐
相关产品推荐

