python列表框控件_第6讲,Listbox 列表框控件

第6讲,Listbox 列表框控件

在与用户交互的过程成中,如果需要用户自己做出选择,可以使用列表框控件,下面的程序,我将创建一个应用,界面入下图所示

整个界面分为3部分

红色区域,列表框控件,展示给用户4个选项

蓝色区域,显示所选按钮,点击该按钮,在绿色区域显示所选的选线

绿色区域,显示用户选择的列表框选项

程序如下

import tkinter as tk

window = tk.Tk()

window.title('列表框') # 设置窗口的标题

window.geometry('200x240') # 设置窗口的大小

list_itmes = tk.StringVar()

list_itmes.set(('python', 'c++', 'java', 'php')) # 设置可选项

# 创建列表框

lb = tk.Listbox(window, listvariable=list_itmes)

lb.pack()

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

def click_button():

"""

当按钮被点击时执行该函数

:return:

"""

select = lb.curselection()

print(len(select))

if len(select) == 0:

label_text.set(no_select)

else:

text = lb.get(select)

label_text.set('你选择了{text}'.format(text=text))

# 创建button

button = tk.Button(window,

text='显示所选', # 显示在按钮上的文字

width=15, height=2,

command=click_button) # 点击按钮时执行的函数

button.pack() # 将按钮锁定在窗口上

# 创建label用于显示所选择的列表框选项

label_text = tk.StringVar() #创建变量

label_text.set(no_select)

label = tk.Label(window,

width=15, height=2, # 标签长宽

textvariable=label_text # label控件将显示label_text的值

)

label.pack() # 将标签固定在窗口上

window.mainloop() # 启动窗口

代码很多,需要逐个部分进行讲解

1. 列表框初始化

list_itmes = tk.StringVar()

list_itmes.set(('python', 'c++', 'java', 'php')) # 设置可选项

# 创建列表框

lb = tk.Listbox(window, listvariable=list_itmes)

lb.pack()

在创建列表框时,设置listvariable参数,list_itmes变量里存储的是列表框里的可选项

2. 获取列表框里别选中的内容

def click_button():

"""

当按钮被点击时执行该函数

:return:

"""

select = lb.curselection()

print(len(select))

if len(select) == 0:

label_text.set(no_select)

else:

text = lb.get(select)

label_text.set('你选择了{text}'.format(text=text))

curselection()方法获取被选中的可选项的索引,以元组的形式返回,这里我先判断选中的内容是否为空,如果有选项被选中,则使用get方法获取选中的内容

3. 让label标签动态变化

label_text = tk.StringVar() #创建变量

label_text.set(no_select)

label = tk.Label(window,

width=15, height=2, # 标签长宽

textvariable=label_text # label控件将显示label_text的值

)

想要让label标签控件的文字内容动态变化,需要设置textvariable 参数,这里已经第二次用到tk.StringVar()创建对象,将textvariable设置为label_text,那么此后,你对label_text的值的修改,都将直接影响到标签上的文字显示。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
好的,我可以帮你解决这个问题。你需要使用一个 GUI 工具包来创建 GUI 程序,这里我选择使用 Python 的 tkinter 库。 以下是实现该功能的示例代码: ```python import tkinter as tk class App: def __init__(self, master): self.master = master self.master.title("列表框示例程序") # 创建左侧列表框 self.left_listbox = tk.Listbox(self.master) self.left_listbox.pack(side=tk.LEFT, padx=10, pady=10) # 添加左侧列表框内容 for i in range(10): self.left_listbox.insert(tk.END, "Item {}".format(i+1)) # 创建右侧列表框 self.right_listbox = tk.Listbox(self.master) self.right_listbox.pack(side=tk.RIGHT, padx=10, pady=10) # 创建添加按钮 self.add_button = tk.Button(self.master, text="添加", command=self.add_item) self.add_button.pack(padx=10, pady=10) def add_item(self): # 获取左侧列表框当前选中的项 selected_item = self.left_listbox.get(self.left_listbox.curselection()) # 将选中的项添加到右侧列表框中 self.right_listbox.insert(tk.END, selected_item) # 创建主窗口 root = tk.Tk() # 启动GUI程序 app = App(root) # 进入消息循环 root.mainloop() ``` 在这个程序中,我们创建了一个主窗口,该窗口包含两个列表框和一个添加按钮。左侧列表框显示可选项,右侧列表框显示已选项。当用户选择左侧列表框中的一个项并点击添加按钮时,该项将被添加到右侧列表框中。 注意:这只是一个简单的示例程序,你需要根据需求进行修改和优化。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值