Python零基础入门二十七之GUI组件

时间:2022-12-13 20:11:21

今天将继续补充Tkinter中的组件。
1.Entry组件
Entry组件就是我们平常所说的输入框。

from tkinter import *
root = Tk()
e = Entry(root)
e.pack(padx=20,pady=20)
#使用delete删除文本框中的内容
e.delete(0,END)
#向文本框中添加默认显示的文本
e.insert(0,'默认文本......')
mainloop()

Python零基础入门二十七之GUI组件

2.Listbox组件
如果需要提供选项给用户选择,单选可以用Radiobutton组件,多选用则可以用Checkbutton组件。但是如果提供的选项非常多的话,通过Radiobutton和Checkbutton组件来实现直接导致的结果就是:用户存放不了那么多的按钮。
这个时候便可以考虑Listbox组件,Listbox是以列表的形式显示出来,并支持滚动条操作,所以对于在需要提供大量选项的情况下会更适用。

from tkinter import *
master = Tk()
#Listbox 还提供了四种默认的选择方式
#SINGLE 单选 BROWSE 也是单选,但是拖动鼠标可以
#可以直接改变选项 MULTIPLE EXTENDED 多选
theLB = Listbox(master)
theLB.pack()
for item in ['鸡蛋','鸭蛋','鹅蛋','李狗蛋']:
     theLB.insert(END,item)
#theLB.delete(0)
#ACTIVE表示当前选中的意思
theButton = Button(master,text='删除它',\
                   command=lambda x=theLB:x.delete(ACTIVE))
theButton.pack()
mainloop()

但是一般的Listbox默认只能显示十个选项,超过十个选项虽然也会显示,但是并没有提示给用户,也就是说并不够友好,我们可以通过两种方法来弥补这个不足。一是通过修改Listbox中的height参数,另一个是通过添加上一个Scrollbar组件,通过滚动滑条来显示。
解决办法1:

theLB = Listbox(master,height=11)

解决办法2:(推荐使用法2)

为了在某个组件上安装垂直滚动条,我们需要做两件事情
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=LEFT,fill=BOTH) sb.config(command=lb.yview) mainloop()

程序的运行结果如下图:

Python零基础入门二十七之GUI组件

3.Scale组件
Scale组件主要是通过滑块来表示某个范围内的一个数字,可以通过修改选项设置范围来修改范围以及分辨率

from tkinter import *

root = Tk()
#两个参数from,to 由于重名了 所在在这里加上下划线
#默认垂直
s1=Scale(root,from_=0,to=42,tickinterval=5,resolution=5,length=150)
s1.pack()
s2=Scale(root,from_=0,to=200,orient=HORIZONTAL)
s2.pack()

def show():
     print(s1.get(),s2.get())

Button(root,text='获取位置',command=show).pack()
mainloop()

程序的运行结果如下图:

Python零基础入门二十七之GUI组件

这篇博客先补充这几个控件,后续博客将继续补充