如何获取 Tkinter 组合框中所选选项的索引?

tkinterpythongui-programming更新于 2024/1/30 9:48:17

如果您想要创建一个下拉列表,并允许用户选择列表中的项目,那么您可以使用组合框小部件。组合框小部件允许您创建一个下拉列表,其中的项目列表可以立即选择。但是,如果您想获取组合框小部件中所选项目的索引,那么您可以使用 get() 方法。get() 方法返回所选项目的整数,称为项目的索引。

示例

让我们举一个例子来看看它是如何工作的。在这个例子中,我们在下拉列表中创建了一个星期几的列表,每当用户从下拉列表中选择一天时,它都会在标签小部件上打印并显示所选项目的索引。要打印索引,我们可以通过将给定的索引类型转换为字符串来连接字符串。

# 导入所需的库
from tkinter import *
from tkinter import ttk

# 创建 tkinter 框架或窗口的实例
win = Tk()

# 设置窗口的大小
win.geometry("700x350")

# 创建一个函数来清除组合框
def clear_cb():
   cb.set('')
   
# 定义天数元组
days= ('Sun','Mon','Tue','Wed','Thu','Fri','Sat')

# 用于打印组合框中所选选项的索引的函数
def callback(*arg):
   Label(win, text= "The value at index " + str(cb.current()) + " is" + " "+ str(var.get()), font= ('Helvetica 12')).pack()
   
# 创建组合框小部件
var= StringVar()
cb= ttk.Combobox(win, textvariable= var)
cb['values']= days
cb['state']= 'readonly'
cb.pack(fill='x',padx= 5, pady=5)

# 设置给定变量的跟踪
var.trace('w',callback)

# 创建一个按钮来清除所选组合框文本值
button= Button(win, text= "Clear", command= clear_cb)
button.pack()

win.mainloop()

输出

运行上述代码将显示一个带有日期列表的组合框小部件。每当您从列表中选择一天时,它都会在标签小部件上打印索引和相应的项目。


相关文章


有用资源