飘云阁

 找回密码
 加入我们

QQ登录

只需一步,快速开始

查看: 1819|回复: 3

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

[复制链接]
  • TA的每日心情
    开心
    前天 23:24
  • 签到天数: 300 天

    [LV.8]以坛为家I

    发表于 2022-12-7 10:07:32 | 显示全部楼层 |阅读模式
                                                                                     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()方法用来获取选中选项索引值


    本人实现的效果图

    屏幕截图_20221206_192139.png


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


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

    图形用户界面实现下拉菜单
    https://www.52pojie.cn/thread-1723490-1-1.html
    (出处: 吾爱破解论坛)


    PYG19周年生日快乐!
  • TA的每日心情
    无聊
    13 小时前
  • 签到天数: 468 天

    [LV.9]以坛为家II

    发表于 2022-12-7 20:41:54 | 显示全部楼层

    感谢楼主分享
    PYG19周年生日快乐!
    回复 支持 1 反对 0

    使用道具 举报

  • TA的每日心情

    9 小时前
  • 签到天数: 590 天

    [LV.9]以坛为家II

    发表于 2022-12-7 13:51:22 | 显示全部楼层
    感谢楼主分享
    PYG19周年生日快乐!
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    开心
    前天 23:24
  • 签到天数: 300 天

    [LV.8]以坛为家I

     楼主| 发表于 2022-12-7 15:08:45 | 显示全部楼层

    不用谢 嘿嘿
    PYG19周年生日快乐!
    回复 支持 反对

    使用道具 举报

    您需要登录后才可以回帖 登录 | 加入我们

    本版积分规则

    快速回复 返回顶部 返回列表