本帖最后由 paypojie 于 2022-12-6 19:33 编辑
Tkint.ttk实现下拉框
前言
一些有关combobox介绍 我熟读并且在心中默背
组合框控件又称为复合框控件,复选框控件,下拉菜单,Combobox控件
我们知道listbox控件是一个供用户从列表项中选择相应条目的的控件 但是如果列表项过多 显示在主窗口上就会显得臃肿不堪
因此 这时候就需要使用下拉菜单了 也就是Combobox控件 下拉菜单应用场景更加广泛
因为Combobox控件并不包含在tkinter模块中 而是包含在tkinter.ttk子模块中 所以需要使用以下导包方式
from tkinter import ttk 或者 from tkinter.ttk import *
语法如下
cbox = Combobox(窗口对象,[参数列表])
Combobox虽然在形式上与Lstbox存在不同 但是 本质上是相同的 因此两个控件属性和方法是通用的
Comebobox有两个常用的方法 get()和current() get()方法用来获取当前选中选项内容 current()方法用来获取选中选项索引值
本人实现的效果图
实现代码
[Python] 纯文本查看 复制代码 import tkinter
from tkinter import ttk
win = tkinter.Tk()
win.geometry('400x200+200+200')
win.resizable(0,0)
# 创建下拉菜单控件
cbox = ttk.Combobox(win)
# 使用grid()设置下拉菜单的位置
cbox.grid(padx=5,pady=5,sticky='NW')
# 设置下拉菜单的选项内容
cbox['value'] = ['C','C++','Java','Python','JavaScript']
# 设置下拉菜单的默认值
cbox.current(3)
# 定义一个函数 用来绑定事件 选中选项将值插入到文本框
# 函数中必须定义参数 不明白为什么 不定义参数会报错
def func(event):
text.insert('insert',cbox.get()+"\n")
# 为下拉菜单绑定事件 当下拉菜单的选项发生变化时 会产生虚拟事件<<ComboboxSelected>> 利用此特性为该事件绑定处理方法
cbox.bind('<<ComboboxSelected>>',func)
text = tkinter.Text(win)
text.grid(pady=2)
win.mainloop()
学习地址
|