📅  最后修改于: 2023-12-03 15:25:27.237000             🧑  作者: Mango
在Python中,使用tkinter模块创建带有图标的菜单相对来说较为简单。我们可以使用PIL模块来加载和处理图像,并将其添加到菜单项中。接下来,我们将一步步介绍如何使用Python的tkinter模块创建带有图标的菜单。
我们首先需要导入所需的模块,包括tkinter和PIL。Tk
类是整个窗口应用程序的容器,我们还需要导入其他组件如Menu
,PhotoImage
类 创建图像及 Label
类 和 Pack
类 进行排列。在导入所有这些模块之后,我们就可以开始创建我们的带有图标的菜单了。
from tkinter import *
from tkinter import Menu
from PIL import Image, ImageTk
现在我们需要初始化Tkinter和创建主窗口。然后,我们创建Menu
的实例并将其附加到主窗口上。最后,我们将菜单项附加到主菜单上,其中每个菜单项都需要一个回调函数。
# 创建主窗口
root = Tk()
root.title("带有图标的菜单示例")
# 创建菜单
menu_bar = Menu(root)
root.config(menu=menu_bar)
# 创建文件菜单
file_menu = Menu(menu_bar, tearoff=0)
# 添加菜单项
file_menu.add_command(label="新建")
file_menu.add_command(label="打开")
file_menu.add_command(label="保存")
file_menu.add_separator()
file_menu.add_command(label="退出", command=root.quit)
# 将文件菜单项添加到菜单栏
menu_bar.add_cascade(label="文件", menu=file_menu)
接下来,我们需要从图像文件中创建图像对象,在Python中,我们使用PIL模块来实现这一点。我们使用Image.open()
方法打开一个图像文件并将其转换为PhotoImage
# 创建新建图标
new_img = Image.open("new.png")
new_icon = ImageTk.PhotoImage(new_img)
# 创建打开图标
open_img = Image.open("open.png")
open_icon = ImageTk.PhotoImage(open_img)
# 创建保存图标
save_img = Image.open("save.png")
save_icon = ImageTk.PhotoImage(save_img)
# 创建退出图标
quit_img = Image.open("quit.png")
quit_icon = ImageTk.PhotoImage(quit_img)
现在我们已经有了所有必要的图标,接下来我们需要将它们添加到每个菜单项中。我们可以使用compound
属性控制图像的位置。
# 添加图标到菜单项
file_menu.add_command(label="新建", image=new_icon, compound="left", accelerator="ctrl+n")
file_menu.add_command(label="打开", image=open_icon, compound="left", accelerator="ctrl+o")
file_menu.add_command(label="保存", image=save_icon, compound="left", accelerator="ctrl+s")
file_menu.add_separator()
file_menu.add_command(label="退出", image=quit_icon, compound="left", command=root.quit)
最后一步是显示我们的菜单。我们可以使用mainloop()
方法来显示窗口并等待用户进行交互。
root.mainloop()
from tkinter import *
from tkinter import Menu
from PIL import Image, ImageTk
# 创建主窗口
root = Tk()
root.title("带有图标的菜单示例")
# 创建菜单
menu_bar = Menu(root)
root.config(menu=menu_bar)
# 创建文件菜单
file_menu = Menu(menu_bar, tearoff=0)
# 添加菜单项
file_menu.add_command(label="新建")
file_menu.add_command(label="打开")
file_menu.add_command(label="保存")
file_menu.add_separator()
file_menu.add_command(label="退出", command=root.quit)
# 创建新建图标
new_img = Image.open("new.png")
new_icon = ImageTk.PhotoImage(new_img)
# 创建打开图标
open_img = Image.open("open.png")
open_icon = ImageTk.PhotoImage(open_img)
# 创建保存图标
save_img = Image.open("save.png")
save_icon = ImageTk.PhotoImage(save_img)
# 创建退出图标
quit_img = Image.open("quit.png")
quit_icon = ImageTk.PhotoImage(quit_img)
# 添加图标到菜单项
file_menu.add_command(label="新建", image=new_icon, compound="left", accelerator="ctrl+n")
file_menu.add_command(label="打开", image=open_icon, compound="left", accelerator="ctrl+o")
file_menu.add_command(label="保存", image=save_icon, compound="left", accelerator="ctrl+s")
file_menu.add_separator()
file_menu.add_command(label="退出", image=quit_icon, compound="left", command=root.quit)
# 将文件菜单项添加到菜单栏
menu_bar.add_cascade(label="文件", menu=file_menu)
# 显示菜单
root.mainloop()
这就是如何使用Python和Tkinter在菜单项中添加图标。你可以根据需要对代码进行修改并将其应用到自己的应用程序中。