关于 python中的 TKinterlistbox 控件加横竖滚动条

上代码 

  

 1 win=tkinter.Tk()
 2 scorllbar=tkinter.Scrollbar(win)
 3 scorllbar.pack(side=tkinter.RIGHT,fill=tkinter.Y)
 4 
 5 #这里显示指明 orient是为了将这个设置为横条
 6 scorllbar2=tkinter.Scrollbar(win,orient=tkinter.HORIZONTAL)
 7 scorllbar2.pack(side=tkinter.BOTTOM,fill=tkinter.X,anchor=tkinter.S)
 8 
 9 #这里是将改模块的滚动与滚动条绑定
10 listBox=tkinter.Listbox(win,yscrollcommand=scorllbar.set,xscrollcommand=scorllbar2.set)
11 listBox.pack(fill=tkinter.BOTH,expand=tkinter.YES)
12 
13 #关联 listbox y x 的view这样滚滚动滑块 listbox就有滚动效果了
14 scorllbar.config(command=listBox.yview)
15 scorllbar2.config(command=listBox.xview)
View Code

 s上面少了 win.mainloop();一句

还有关于pack 参数详解 摘自http://www.cnblogs.com/kongzhagen/p/6144588.html

 

pack布局非常简单,不用做过多的设置,直接使用一个 pack 函数就可以了。

 

1、我们使用 pack 函数的时候,默认先使用的放到上面,然 后 依次向下排,它会给我们的组件一个自认为合适的位置 和大小,这是默认方式。

 

2、可接受的参数:

 

  side:按扭停靠在窗口的哪个位置

 

    left: 左

 

    top: 上

 

    right: 右

 

    botton: 下

 

  fill:填充

 

    x:水平方向填充

 

    y:竖直方向填充

 

    both:水平和竖直方向填充

 

    none:不填充

 

  expand:

 

    yes:扩展整个空白区

 

    no:不扩展

 

  anchor:

 

    N:北  下

 

    E:东  右

 

    S:南 下

 

    W:西 左

 

    CENTER:中间

 

最后 这里有个关于这个插件详细信息的网站 以参考http://www.runoob.com/python/python-gui-tkinter.html

转载于:https://www.cnblogs.com/jiujue/p/10732766.html

### 如何在 Python Tkinter 中实现和使用滚动条功能 在 Python 的 Tkinter 库中,`Scrollbar` 组件用于提供滚动功能。它通常与其他可滚动的小部件(如 `Text`, `Listbox`, 或者自定义的 Canvas)一起使用来管理大量内容。 以下是关于如何在 Tkinter 中实现和使用滚动条的具体方法: #### 基本概念 `Scrollbar` 是一种辅助控件,本身并不显示任何数据,而是通过绑定其他小部件(如 `Listbox`、`Text` 等),控制这些小部件的内容展示范围[^1]。 #### 实现步骤说明 为了使滚动条生效,需要完成两个主要操作: 1. **将滚动条与目标小部件关联**:这可以通过设置目标小部件的相关属性(如 `yscrollcommand` 对于垂直方向或者 `xscrollcommand` 对于水平方向)指向滚动条对象的方法。 2. **配置滚动条的行为**:调用滚动条的 `.config()` 方法并指定其命令参数为目标小部件的视图调整函数(如 `listbox.yview` 或 `text.yview`)。 #### 示例代码 以下是一个完整的例子,展示了如何在一个窗口中创建带有滚动条的列表框 (`Listbox`) 和文本区域 (`Text`)。 ```python import tkinter as tk # 初始化主窗口 root = tk.Tk() root.title("Tkinter Scrollbar Example") # 创建框架以便更好地布局 frame_listbox = tk.Frame(root) frame_text = tk.Frame(root) frame_listbox.pack(padx=10, pady=5) frame_text.pack(padx=10, pady=5) # === Listbox with Vertical Scrollbar === label_listbox = tk.Label(frame_listbox, text="Listbox with Scrollbar:") label_listbox.pack() # 创建一个垂直滚动条 scrollbar_listbox = tk.Scrollbar(frame_listbox, orient='vertical') scrollbar_listbox.pack(side='right', fill='y') # 创建一个Listbox并与滚动条关联 listbox = tk.Listbox(frame_listbox, yscrollcommand=scrollbar_listbox.set) for item in range(50): listbox.insert(tk.END, f"Entry {item}") listbox.pack(side='left', fill='both') # 配置滚动条行为 scrollbar_listbox.config(command=listbox.yview) # === Text Widget with Both Scrollbars (Vertical and Horizontal) === label_text = tk.Label(frame_text, text="Text Widget with Scrollbars:") label_text.pack() # 创建水平和垂直滚动条 scrollbar_vertical = tk.Scrollbar(frame_text, orient='vertical') scrollbar_horizontal = tk.Scrollbar(frame_text, orient='horizontal') scrollbar_vertical.pack(side='right', fill='y') scrollbar_horizontal.pack(side='bottom', fill='x') # 创建一个Text widget并与滚动条关联 text_widget = tk.Text( frame_text, wrap='none', yscrollcommand=scrollbar_vertical.set, xscrollcommand=scrollbar_horizontal.set ) text_widget.pack(expand=True, fill='both') # 插入一些示例文本 sample_text = "This is a sample line of text.\n" * 30 text_widget.insert('end', sample_text) # 配置滚动条行为 scrollbar_vertical.config(command=text_widget.yview) scrollbar_horizontal.config(command=text_widget.xview) # 启动事件循环 root.mainloop() ``` 此代码片段演示了两种常见的场景: - 使用 `Listbox` 结合单个垂直滚动条。 - 使用 `Text` 控件结合水平和垂直滚动条。 #### 关键点解析 1. **滚动条的方向**: 可以通过 `orient='vertical'` 或 `orient='horizontal'` 来设定滚动条的方向[^2]。 2. **滚动条的位置**: 利用了 `pack()` 函数中的 `side` 参数决定滚动条相对于父容器的位置。 3. **双向绑定机制**: 滚动条和目标小部件之间存在相互依赖关系——当用户拖拽滚动条时会更新小部件视图;而当用户直接交互改变小部件内容位置时也会同步更新滚动条状态。 #### 注意事项 如果希望滚动条始终可见,则无需额外处理;但如果想让滚动条仅在必要时才出现,则需手动检测内容大小变化,并动态隐藏/显示滚动条。 ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值