第6-1讲,Listbox 列表框控件

发布时间 2023-05-08 15:56:03作者: 家乐福的搬砖日常

Listbox 列表框控件

在与用户交互的过程成中,如果需要用户自己做出选择,可以使用列表框控件.

import tkinter as tk

#创建一个窗口
window=tk.Tk()

#创建窗口的标题
window.title("listbox")
#设置窗口的大小
window.geometry('500x400')
#设置窗体的图标
window.iconbitmap('../images/螃蟹.ico')

#设置列表框可选项
list_itmes=tk.StringVar()
list_itmes.set(('java','python','go','c++'))

#创建列表框,并将StringVar对象list_itmes与控件listbox绑定
listbox=tk.Listbox(window,height='5',listvariable=list_itmes)

no_select = '没有选中任何选项'

#创建按钮点击触发函数
def click():
    select = listbox.curselection()
    print(len(select))
    if len(select) == 0:
        label_text.set(no_select)
    else:
        text = listbox.get(select)
        label_text.set('你选择了{text}'.format(text=text))
#创建按钮
button=tk.Button(window,text='选择列表',height='1',command=click)

# 创建label用于显示所选择的列表框选项
label_text = tk.StringVar()    #创建变量
label_text.set(no_select)
label = tk.Label(window,
    width=15, height=2,        # 标签长宽
    textvariable=label_text,    # label控件将显示label_text的值
    borderwidth=2,
    relief="raised"
    )
'''
可以使用Label的borderwidth属性设置边框宽度,使用relief属性设置边框样式,例如:

label = tk.Label(root, text="Hello World", borderwidth=2, relief="solid")
label.pack()

其中,relief属性可以设置为以下样式:

flat:无边框
raised:凸起的边框
sunken:凹陷的边框
solid:实线边框
groove:凹槽边框
ridge:隆起边框

'''
#列表框固定在windows上
listbox.pack()
#将按钮固定在windows上
button.pack()
# 将标签固定在窗口上
label.pack()
#显示窗口
window.mainloop()