listbox tkinter 多选_TKINTER教程之LISTBOX篇

#Listbox

为列表框控件,它可以包含一个或多个文本项

(

text

item

)

,可以

设置为单选或多选

'''1.创建一个

Listbox,向其中添加三个

item'''

from

Tkinter

import

*

root

=

Tk

()

lb

=

Listbox

(

root

)

for

item

in

[

'python'

,

'tkinter'

,

'widget'

]:

lb

.

insert

(

END

,

item

)

lb

.

pack

()

root

.

mainloop

()

'''2.创建一个可以多选的

Listbox,使用属性

selectmaod'''

from

Tkinter

import

*

root

=

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
以下是一个使用tkinter实现多选下拉列表的例子: ```python import tkinter as tk from tkinter import ttk class MultiCombobox(ttk.Combobox): def __init__(self, master, values, **kw): self.values = values self.var = tk.StringVar() kw["textvariable"] = self.var ttk.Combobox.__init__(self, master, **kw) self.bind("<FocusIn>", self.popup) self.bind("<FocusOut>", self.unpost) self.listbox = None self.posted = False self.selection = [] def popup(self, event): if not self.posted: self.listbox = tk.Listbox(self, height=len(self.values)) self.listbox.configure(font=self.cget("font"), width=self.cget("width")) self.listbox.bind("<ButtonRelease-1>", self._select) self.listbox.bind("<Escape>", lambda event: self.unpost()) self.listbox.place(in_=self, relx=0, rely=1) for value in self.values: self.listbox.insert("end", value) self.listbox.selection_clear(0, "end") for index in self.selection: self.listbox.selection_set(index) self.posted = True def unpost(self, event=None): if self.listbox: self.selection = self.listbox.curselection() self.var.set(", ".join([self.values[index] for index in self.selection])) self.listbox.destroy() self.listbox = None self.posted = False def _select(self, event): self.selection = self.listbox.curselection() self.var.set(", ".join([self.values[index] for index in self.selection])) self.listbox.destroy() self.listbox = None self.posted = False if __name__ == "__main__": root = tk.Tk() values = ["选项1", "选项2", "选项3", "选项4", "选项5", "选项6"] cb = MultiCombobox(root, values=values, state="readonly") cb.pack() root.mainloop() ```

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值