不使用tk.Menu小部件的定制菜单栏。
创始人
2024-12-29 11:30:43
0

以下是一个使用tkinter库创建定制菜单栏的示例代码,它不使用tk.Menu小部件:

import tkinter as tk

def open_file():
    print("打开文件")

def save_file():
    print("保存文件")

def exit_app():
    root.destroy()

root = tk.Tk()

# 创建菜单栏容器
menu_bar_frame = tk.Frame(root, relief=tk.RAISED, bd=2)
menu_bar_frame.pack(fill=tk.X)

# 创建菜单按钮
file_menu_btn = tk.Button(menu_bar_frame, text="文件")
file_menu_btn.pack(side=tk.LEFT, padx=5)

edit_menu_btn = tk.Button(menu_bar_frame, text="编辑")
edit_menu_btn.pack(side=tk.LEFT, padx=5)

help_menu_btn = tk.Button(menu_bar_frame, text="帮助")
help_menu_btn.pack(side=tk.LEFT, padx=5)

# 创建文件菜单
file_menu_frame = tk.Frame(root, relief=tk.RAISED, bd=2)
file_menu_frame.pack_forget()

open_file_btn = tk.Button(file_menu_frame, text="打开文件", command=open_file)
open_file_btn.pack(padx=5, pady=2)

save_file_btn = tk.Button(file_menu_frame, text="保存文件", command=save_file)
save_file_btn.pack(padx=5, pady=2)

exit_btn = tk.Button(file_menu_frame, text="退出", command=exit_app)
exit_btn.pack(padx=5, pady=2)

# 创建编辑菜单
edit_menu_frame = tk.Frame(root, relief=tk.RAISED, bd=2)
edit_menu_frame.pack_forget()

# 创建帮助菜单
help_menu_frame = tk.Frame(root, relief=tk.RAISED, bd=2)
help_menu_frame.pack_forget()

# 菜单按钮点击事件
def file_menu_btn_clicked():
    edit_menu_frame.pack_forget()
    help_menu_frame.pack_forget()
    file_menu_frame.pack(side=tk.TOP, fill=tk.X)

def edit_menu_btn_clicked():
    file_menu_frame.pack_forget()
    help_menu_frame.pack_forget()
    edit_menu_frame.pack(side=tk.TOP, fill=tk.X)

def help_menu_btn_clicked():
    file_menu_frame.pack_forget()
    edit_menu_frame.pack_forget()
    help_menu_frame.pack(side=tk.TOP, fill=tk.X)

file_menu_btn.config(command=file_menu_btn_clicked)
edit_menu_btn.config(command=edit_menu_btn_clicked)
help_menu_btn.config(command=help_menu_btn_clicked)

root.mainloop()

这个示例代码创建了一个简单的窗口,其中包含一个定制的菜单栏。菜单栏由三个按钮组成:文件、编辑和帮助。当点击文件按钮时,将显示文件菜单,其中包含打开文件、保存文件和退出按钮。点击编辑按钮时,将显示编辑菜单。点击帮助按钮时,将显示帮助菜单。

请注意,菜单栏和菜单按钮是使用tk.Button小部件创建的,菜单按钮的点击事件会根据需要显示相应的菜单。

相关内容

热门资讯

六分钟技巧!雀神训练秘籍,微扑... 六分钟技巧!雀神训练秘籍,微扑克wpk安全(详细透视辅助工具教程)1、这是跨平台的雀神训练秘籍黑科技...
6分钟介绍!中至九江有辅助工具... 6分钟介绍!中至九江有辅助工具吗,红龙扑克辅助工具(详细透视辅助插件教程);中至九江有辅助工具吗简单...
三分钟黑科技!葫芦娃手游吗,p... 葫芦娃手游吗赢率提升策略‌;三分钟黑科技!葫芦娃手游吗,pokerx人工智能(详细透视辅助脚本教程)...
五分钟方法!闲来跑胡子必胜神器... 五分钟方法!闲来跑胡子必胜神器,aa扑克发牌机制(详细透视辅助插件教程);玩家必备必赢加哟《1367...
五分钟辅助挂!大齐山东麻将有没... 您好,大齐山东麻将有没有挂这款游戏可以开挂的,确实是有挂的,需要了解加微【136704302】很多玩...
6分钟教学!越乡游斗牛怎么开挂... 6分钟教学!越乡游斗牛怎么开挂,德州可能有外 挂(详细透视辅助脚本教程)1、很好的工具软件,可以解锁...
6分钟介绍!玉海楼茶苑十三输赢... 6分钟介绍!玉海楼茶苑十三输赢有没有规律,微扑克有挂(详细透视辅助插件教程);《WPK辅助透视》‌:...
六分钟教学!微信随意玩9人拼三... 《微信随意玩9人拼三张辅助器软件透明挂》是一款多人竞技的微信随意玩9人拼三张辅助器辅助透视游戏,你将...
八分钟方法!小白大作战有没有挂... 八分钟方法!小白大作战有没有挂,wepooke系统规律(详细透视辅助工具教程);(需添加指定薇757...
3分钟攻略!爱摩罗麻将有挂吗,... 3分钟攻略!爱摩罗麻将有挂吗,红龙扑克有作假(详细透视辅助插件教程)是一款可以让一直输的玩家,快速成...