甜萝 发表于 2022-12-6 19:24

图形用户界面实现下拉菜单

本帖最后由 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()方法用来获取选中选项索引值


本人实现的效果图




实现代码
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()

学习地址http://c.biancheng.net/tkinter/listbox.html

zhangqinglin 发表于 2022-12-6 20:20

谢谢老板

GunXiOu888 发表于 2022-12-6 20:30

感谢分享

tearsmm 发表于 2022-12-6 20:49

网站不错!加入学习收藏夹,谢谢分享

甜萝 发表于 2022-12-6 23:10

wangjizheng1984 发表于 2022-12-6 20:16
太爱了,谢谢

爱你哟 哈哈

甜萝 发表于 2022-12-6 23:10

zhangqinglin 发表于 2022-12-6 20:20
谢谢老板

还不是老板 {:301_998:}

甜萝 发表于 2022-12-6 23:11

tearsmm 发表于 2022-12-6 20:49
网站不错!加入学习收藏夹,谢谢分享

别只收藏 要记得看{:301_1001:}

甜萝 发表于 2022-12-6 23:13

本帖最后由 paypojie 于 2022-12-6 23:15 编辑

User5319422 发表于 2022-12-6 20:24
提问,用Combox控件实现三级菜单,楼主有思路实现类似双控开关的效果吗?
我是用PyQt5 Combox做了多级菜单 ...
Combobox这个模块 我没深入 帮你置顶 看有没有人会 {:301_998:}

wan456 发表于 2022-12-6 23:59

cbox = Combobox(窗口对象,[参数列表])
巧妙的通过中转获得相应数据

ahehaoyu 发表于 2022-12-7 08:13

你这注释比代码多:lol
页: [1] 2
查看完整版本: 图形用户界面实现下拉菜单