首页 > 编程语言 >8-4 【Python0036】中文级联菜单

8-4 【Python0036】中文级联菜单

时间:2024-05-26 21:44:17浏览次数:28  
标签:category 级联 Python0036 menu item 菜单 tk main root

编写程序实现中文级联菜单,建议可以使用pypinyin或其它扩展库。

 

import tkinter as tk

from tkinter import ttk

from pypinyin import pinyin, Style

# 示例数据

menu_data = {

"水果": \["苹果", "香蕉", "橙子"\],

"动物": \["狗", "猫", "兔子"\],

"城市": \["北京", "上海", "广州"\]

}

def create_menu(menu_data):

root = tk.Tk()

root.title("中文级联菜单")

main_menu = tk.Menu(root)

root.config(menu=main_menu)

for category, items in menu_data.items():

    category_menu = tk.Menu(main_menu, tearoff=0)

    main_menu.add_cascade(label=category, menu=category_menu)

    for item in sorted(items, key=lambda x: ''.join(pinyin(x, style=Style.NORMAL))):

        category_menu.add_command(label=item, command=lambda i=item: on_select(i))

root.mainloop()

def on_select(item):

print(f"你选择了: {item}")

if _name_ == "_main_":

create_menu(menu_data)

标签:category,级联,Python0036,menu,item,菜单,tk,main,root
From: https://www.cnblogs.com/yuanxinglan/p/18214340

相关文章

  • Senparc.Weixin.MP SDK 微信公众平台开发--自定义菜单相关
      publicvirtualIResponseMessageBaseOnImageRequest(RequestMessageImagerequestMessage);    publicvirtualIResponseMessageBaseOnLinkRequest(RequestMessageLinkrequestMessage);    publicvirtualIResponseMessageBaseOnLocationRequest(Requ......
  • dxNavBar1做导航菜单,类QQ的抽屉效果(23)
     从右边的项鼠标拖到左边的分组内然后修改分组/项的名称Caption ......
  • win11 系统右键菜单 更改成 win10的
    系统右键菜单切换的两份文件代码:to_win10.bat:win11换成win10的;to_win11.bat:win10换成win11的;to_win10.batregadd"HKCU\Software\Classes\CLSID\{86ca1aa0-34aa-4e8b-a509-50c905bae2a2}\InprocServer32"/f/veto_win11.batregdelete"HKCU\Software\Cl......
  • CSS JS 自适应菜单
      <!DOCTYPEhtml><htmllang="en"><head><metacharset="UTF-8"><metaname="viewport"content="width=device-width,initial-scale=1.0"><title>ResponsiveMenu</t......
  • electron 菜单选项 - 隐藏,设置菜单
    隐藏菜单const{app,Menu,session}=require('electron');/*隐藏electron的菜单栏*/Menu.setApplicationMenu(null);设置菜单const{app,Menu,session}=require('electron'); //创建menufunctioncreateMenu(){letmenuStructure=[......
  • C#多选下拉菜单自定义控件
    C#在winform项目中多选下拉菜单自定义控件。由 ComboBox和 CheckedListBox组合形成。效果: 自定义控件代码MultiComboBox.csusingSystem;usingSystem.Collections.Generic;usingSystem.ComponentModel;usingSystem.Drawing;usingSystem.Data;usingSystem......
  • win10 隐藏右键菜单
    打开注册表: 定位到HKEY_CLASSES_ROOT\Directory\Background\shell\ 在需要的文件夹下面添加 类型:DWORD32名称:HideBasedOnVelocityId值:6698a6十六进制......
  • 旋转菜单
     <!DOCTYPEhtml><htmllang="en"><head><metacharset="UTF-8"><title>旋转菜单</title><linkrel='stylesheet'href="https://cdnjs.cloudflare.com/ajax/libs......
  • 在鼠标右键菜单中新增新建Markdown文件选项(VSCode)
    引言正常情况下,我们新建md文件有两种方式:一是通过Markdown编辑器新建,二是新建txt文件再修改后缀。但是在Windows系统中,我们可以通过修改注册表来新增右键菜单选项。这里我们可以通过修改注册表来新增新建Markdown文件选项,这样可以减少新建文件的繁琐操作。下面就来演示在Window......
  • django自定义构建模板,通过bootstrap实现菜单隐藏和显示
    实现后的界面1.自定义页面模板实现主页面代码(home.html){%extends'layout.html'%}#引用模板{%loadstatic%}{%blockcontent%}<h3>欢迎登录</h3>{%endblock%}自定义内容layout.html文件设置(模板){%loadstatic%}{%loadmenu%}#导入m......