阅读目录
- Listbox 以列表的形式显示
- Scrollbar 滚动条
- Scale 更滚动条很相似,但更精准
Listbox:
说明:列表框控件,在Listbox窗口小部件是用来显示一个字符串列表给用户
属性:创建一个Listbox组件的时候,它是空的,首先是添加文本进去
insert():有两个参数,第一个是插入的索引号,第二个是插入的字符串
from tkinter import * root = Tk() var = StringVar() var.set([‘A‘,‘B‘,‘C‘,‘D‘]) #定义一个变量,赋值,然后再给listvariable thelb = Listbox(root,listvariable=var).pack() mainloop()
结果:
当然,使用delete()方法是删除列表中的项目,重用的操作是删除所有的项目:Listbox.delete(0,END)
也可以删除指定的项目,用ACTIVE
from tkinter import * root = Tk() thelb = Listbox(root,height=15) #这里表示显示15行 thelb.pack() for i in range(100): thelb.insert(END,i) #这个ACTIVE是一个特殊的索引号,表示当前被选中的项目 thebu = Button(root,text=‘删除‘,command = lambda x = thelb: x.delete(ACTIVE)).pack() mainloop()
结果:
利用for循环插入数据,这里获取光标所选中的东西用 curselection()方法
from tkinter import * root = Tk() var1 = StringVar() #定义一个变量用来接收 Label(root,bg=‘yellow‘,textvariable=var1,width=8).pack() thelb = Listbox(root) thelb.pack() for i in [‘王昭君‘,‘庄周‘,‘吕布‘,‘亚瑟‘]: thelb.insert(END,i) def show(): value = thelb.get(thelb.curselection()) #获取光标在这个listbox上选定的值 var1.set(value) Button(root,text=‘获取‘,command=show).pack() mainloop()
结果:
Scrollbar:
说明:滚动条控件,当内容超过可视化区域时使用,如列表框
属性:为了在某个组件上安装滚动条,需要做这两件事情:
1,设置该组件的 yscrollbarcommand 选项为 Scrollbar组件的set() 方法
2,设置Scrollbar 组件的 command 选项为该组件的 yview() 方法
from tkinter import * root = Tk() sb = Scrollbar(root) sb.pack(side=RIGHT,fill=Y) lb = Listbox(root,yscrollcommand= sb.set) for i in range(1000): lb.insert(END,i) lb.pack(side=RIGHT) sb.config(command=lb.yview) mainloop()
结果:
Scale:
说明:范围控件,显示一个数值刻度,为输出限定范围的数字区间
属性:指定一个范围,用from_,to,
from tkinter import * root = Tk() Scale(root,from_=0,to=42).pack() Scale(root,from_=0,to=200,orient = HORIZONTAL).pack() mainloop()
结果:
当然,还有其他属性,orient,控制滑块的方位,HORIZONTAL(水平),VERTICAL(垂直)
通过resolution选项可以控制分辨率(步长),通过tickinterval选项控制刻度
from tkinter import * root = Tk() l = Label(root,text=‘‘,bg=‘yellow‘,width=10) l.pack() def show(v): l.config(text=‘长度为:‘ + v) #这个是改变label标签的text Scale(root,from_=0,to=66,tickinterval=3,resolution=3,length=200,orient=VERTICAL).pack() Scale(root,from_=0,to=100,tickinterval=5,resolution=5, length=500,orient=HORIZONTAL,command=show).pack() #这个时候会产生一个参数,传给函数就行 mainloop()
结果:
参考文献:
小甲鱼的python教学视频
时间: 2024-09-29 02:53:23