龙空技术网

Python GUI 编程 05 : 菜单 Menu

超人老嗲 36

前言:

如今咱们对“c语言二级菜单如何创建”大概比较讲究,你们都想要了解一些“c语言二级菜单如何创建”的相关知识。那么小编在网上网罗了一些关于“c语言二级菜单如何创建””的相关知识,希望大家能喜欢,大家快快来学习一下吧!

import osimport tkinter as tkfrom tkinter import ttk, messagebox, filedialogfrom glob import globroot=tk.Tk()root.title("root")# root.option_add("*tearoff",True) # 允许浮动菜单# print(root.tk.call('tk','windowingsystem')) # 通过Tcl命令获得当前系统类型text = tk.Text(root, width=100, undo=1)text.grid(sticky='news')root.grid_columnconfigure(0, weight=1)root.grid_rowconfigure(0, weight=1)win = tk.Toplevel(root) menubar = tk.Menu(win)  # 创建菜单对象win["menu"] = menubar   # 定义当前窗口的主菜单蓝到指定菜单对象image = tk.PhotoImage(name='opr.gif') # 创建tk图像对象,默认仅支持gif格式def newFile(*args):    passdef openFile(file):    with open(file=file,mode='r') as f:        text.insert('end',f.read())def closeFile(*args):    win.destroy()menu_file = tk.Menu(menubar) # 创建一级菜单对象menu_edit = tk.Menu(menubar)menu_recent = tk.Menu(menu_file) # 创建二级菜单对象menubar.add_cascade(menu=menu_file, label="File") # 主菜单定义级联菜单并关联到一级菜单menubar.add_cascade(menu=menu_edit,label="Edit")menu_file.add_cascade(menu=menu_recent, label='Open Recent', image=image, \    compound=tk.LEFT) # 一级菜单定义级联菜单并关联到二级菜单menu_file.add_command(label='New', command=newFile) # 增加命令菜单并指定方法menu_file.add_command(label='Open...', command=openFile) menu_file.add_separator() # 增加分隔线check=tk.StringVar()menu_file.add_checkbutton(label='check', variable=check, onvalue=1, offvalue=0, \    command=lambda: print(check.get())) # 增加选项菜单menu_file.add_separator()radio = tk.StringVar()menu_file.add_radiobutton(label='One', variable=radio, value=1, \command=lambda: print(radio.get())) # 增加单选菜单menu_file.add_radiobutton(label='Two', variable=radio, value=2, \    command=lambda: print(radio.get()))menu_file.add_separator()menu_file.add_command(label='Close', command=closeFile, \    accelerator="Ctrl+W", # 定义命令菜单的提示文本    underline=0, # 定义label下划线字符的索引    ) for file in glob(f'd:/*.log'): # 遍历指定路径指定类型文件    menu_recent.add_command(label=os.path.basename(file), \        command=lambda f=file: openFile(f)) # 绑定文件打开方法menu_recent.add_separator()menu_recent.add_command(label='Clear Recent...', \    command=lambda: menu_recent.delete(0, 'end')) # 清空指定菜单下所有内容#! 获取、更改菜单选项值print(menu_file.entrycget(1,'label')) # 获取指定菜单项label属性print(menu_file.entryconfigure(0)) # 返回指定菜单项的所有属性#! 禁用菜单#//menu_file.entryconfigure('Close', state='disabled') # 'normal' for enable win.bind('<Control-KeyPress-w>',closeFile) # 绑定键盘组合键到功能函数win.title("Menu Sample")def example(*args):    t = tk.Toplevel(root)    m = tk.Menu(t)    m_edit = tk.Menu(m)    m.add_cascade(menu=m_edit, label='Edit')    m_edit.add_command(label='Paste', command=lambda: \        t.focus_get().event_generate('<<Paste>>')) # 在焦点部件调用系统预定义虚拟事件    m_edit.add_command(label='Find...', command=lambda: \        t.event_generate("<<OpenFindDialog>>")) # 调用用户定义虚拟事件    t.configure(menu=m)    def lauchFindDialog(*args):        messagebox.showinfo(message="Virtrul Event User Defined")  # 定义虚拟事件方法    t.bind(sequence='<<OpenFindDialog>>',func=lauchFindDialog) # 绑定虚拟事件序列到对应方法root.bind('<Control-KeyPress-1>', example)root.mainloop()

标签: #c语言二级菜单如何创建