python treevievw 的各种滚动条使用方法

import tkinter as tk
from tkinter import ttk

root = tk.Tk()
root.title('滚动条')
root.geometry('800x600')

#写个frame 新建一个子布局
frame = tk.Frame(root)
#使用place方法,调整子布局的位置
frame.place(x=200,y=100,width=400,height=300,)
#设定黄色,以确定我实际发生测试的区域
frame.config(bg='yellow')
#添加纵向滚动条,这里默认的滚动参数为VERTICAL,意思为纵向滚动,水平滚动下面有说明。
ybar = ttk.Scrollbar(frame)
#设置滚动条放置的位置,这里的fill指的是滚动条根据上面frame的高度做填充。当然这里也可以自定义高度,懒人直接填充,不知道怎么写也可以用’both‘
ybar.pack(side='right',fill='y')

#水平滚动条和上面的y轴滚动条完全一至,但是这里需要有个参数HORIZONTAL,在使用tk.的时候需要全部大写,也可以写作orient="horizontal"
xbar = ttk.Scrollbar(frame,orient=tk.HORIZONTAL)
#这里还是使用pack方法绑定位置,side参数为"bottom"说明在底部,当然这里也可以写作tk.BOTTOM,我使用多种不一样的写法,方便阅读灵活区分网上目前其他资源的使用方法
xbar.pack(side= 'bottom',fill='x')
#这边是ttk的treeview模块,我是直接照抄的,有多种写法,根据自己的喜好来写即可,参数的,yscrollcommand=ybar.set,xscrollcommand=xbar.set,
#分别为绑定x轴滚动和y轴滚动,此参数十分重要,如果不写,滚动条无法运动
tree = ttk.Treeview(frame,columns=['c1','c2','c3','c4','c5','c6','c7','c8','c9'],show='headings',yscrollcommand=ybar.set,xscrollcommand=xbar.set)
#tree 这里可以再次使用pack()方法来摆放位置,写法:
#tree.pack(side='right',fill='y')

#使用command参数来绑定treevievw,后面的没什么好说的了,网上有大量的说明。
ybar.config(command=tree.yview)
xbar.config(command=tree.xview)

tree.column('c1',width=70,anchor='center')
tree.column('c2',width=70,anchor='center')
tree.column('c3',width=70,anchor='center')
tree.column('c4',width=70,anchor='center')
tree.column('c5',width=70,anchor='center')
tree.column('c6',width=70,anchor='center')
tree.column('c7',width=70,anchor='center')
tree.column('c8',width=70,anchor='center')
tree.column('c9',width=70,anchor='center')

tree.heading('c1',text='项目1')
tree.heading('c2',text='项目2')
tree.heading('c3',text='项目3')
tree.heading('c4',text='项目4')
tree.heading('c5',text='项目5')
tree.heading('c6',text='项目6')
tree.heading('c7',text='项目7')
tree.heading('c8',text='项目8')
tree.heading('c9',text='项目9')

tree.tag_configure("tgOddRow", background="white")
tree.tag_configure("tgEvenRow", background="lightblue")

for i in range(50):
    if i%2 == 0:
        tree.insert("", 0, values=(str(i), '项目'+str(i),
                                               '项目'+str(i),'项目'+str(i),
                                               '项目'+str(i), '项目'+str(i),
                                               '项目'+str(i), '项目'+str(i),
                                               '项目'+str(i), '项目'+str(i)),tag="tgOddRow")

    else:
        tree.insert("", 0, values=(str(i), '项目'+str(i),
                                               '项目'+str(i), '项目'+str(i),
                                               '项目'+str(i),'项目'+str(i),
                                               '项目'+str(i), '项目'+str(i),
                                               '项目'+str(i),'项目'+str(i)),tag="tgEvenRow")

tree.pack(side='left',fill='y')
root.mainloop()

  • 4
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值