如何在Tkinter的Listbox内部添加Scrollbar?
实现Listbox内嵌滚动条的方案
完全可以实现把滚动条嵌入Listbox内部的效果,只需调整组件的容器归属和布局方式即可。
修改后的代码
from tkinter import * window = Tk() window.geometry('500x500') window.config(bg='#3c3f41') window.state('zoomed') frame_listbox = Frame(window, bg='#3c3f41') frame_listbox.pack(side=LEFT) # 调整Listbox和Scrollbar的布局,放在同一个Frame内 listbox = Listbox(frame_listbox, font=('Helvetica',30), bg='#3c3f41', fg='white') listbox.pack(side=LEFT, fill=BOTH, expand=True) scrollbar = Scrollbar(frame_listbox, command=listbox.yview) scrollbar.pack(side=RIGHT, fill=Y) listbox.config(yscrollcommand=scrollbar.set) # 添加测试数据方便查看效果 for i in range(50): listbox.insert(END, f"测试条目 {i+1}") window.mainloop()
关键修改说明
- 将滚动条的父容器从
window改为frame_listbox,确保它和Listbox处于同一容器内 - 用
side=LEFT布局Listbox,side=RIGHT布局滚动条,让滚动条紧贴Listbox右侧,形成内嵌视觉效果 - 给Listbox添加
fill=BOTH, expand=True,让它能占满容器空间,滚动条通过fill=Y垂直填满容器高度 - 可选:给Listbox设置和窗口一致的背景色,进一步强化内嵌的视觉感受
内容的提问来源于stack exchange,提问作者Forty966996
相关产品推荐
相关产品推荐

