Tkinter 框架滚动条
使用可滚动框架
tkinter 包不提供框架的内置垂直滚动条。但是,您可以使用 Canvas、Scrollbar 和 Frame 小部件的组合来创建一个。下面是一个示例:
class VerticalScrolledFrame(tk.Frame): def __init__(self, parent): tk.Frame.__init__(self, parent) # Create a canvas canvas = tk.Canvas(self) canvas.pack(side=tk.LEFT, fill=tk.BOTH, expand=True) # Create a vertical scrollbar scrollbar = ttk.Scrollbar(self, orient=tk.VERTICAL) scrollbar.pack(side=tk.RIGHT, fill=tk.Y) # Connect the scrollbar to the canvas scrollbar.config(command=canvas.yview) canvas.config(yscrollcommand=scrollbar.set) # Reset the view canvas.xview_moveto(0) canvas.yview_moveto(0) # Create a frame inside the canvas self.interior = ttk.Frame(canvas) canvas.create_window(0, 0, window=self.interior, anchor=NW)
将滚动条绑定到鼠标滚轮
默认情况下,Tkinter 滚动条缺少鼠标滚轮滚动功能。要启用它,我们可以将鼠标滚轮事件绑定到画布的 yview_scroll 方法:
canvas.bind_all('<MouseWheel>', lambda event: canvas.yview_scroll(int(-event.delta/120), "units"))
与 OP 代码的差异
其他点
以上是如何在 Tkinter 中创建带有垂直滚动条的可滚动框架?的详细内容。更多信息请关注PHP中文网其他相关文章!