Python Tkinter Menu菜單
-
Menu小部件用於在python應用程序中創建各種類型的菜單(頂級,下拉和彈出)
-
頂級菜單是顯示在父窗口標題欄下方的菜單。我們需要創建Menu小部件的新實例,並使用add()方法向其添加各種命令
-
語法
me = Menu(top, options)
- 可能的選項列表
選項 | 描述 |
---|---|
activebackground | 窗口小部件在焦點下時窗口小部件的背景顏色。 |
activeborderwidth | 小部件在鼠標下方時邊框的寬度。默認值為1像素。 |
activeforeground | 窗口小部件具有焦點時窗口小部件的字體顏色。 |
bg | 小部件的背景顏色。 |
bd | 小部件的邊框寬度。 |
cursor | 鼠標指針在懸停窗口小部件時更改為光標類型。光標類型可以設置為箭頭或點。 |
disabledforeground | 禁用時窗口小部件的字體顏色。 |
font | 小部件文本的字體類型。 |
fg | 小部件的前景色。 |
postcommand | 命令可以設置為當mourse懸停菜單時調用的任何函數。 |
relief | 窗口小部件的邊框類型。默認類型為RAISED。 |
image | 用於在菜單上顯示圖像。 |
selectcolor | 用於在選中時顯示checkbutton或radiobutton的顏色。 |
tearoff | 默認情況下,菜單中的選項從位置1開始。如果我們設置0,那么選項將從第0位開始。 n. 可按虛線拆下的紙片;tearoff=1 代表顯示分隔虛線;teartoff=0 代表取消分隔虛線 |
title | 如果要更改窗口標題,請將此選項設置為窗口標題。 |
- 方法
- “菜單”窗口小部件包含以下方法
方法 | 描述 |
---|---|
add_command(options) | 用於將菜單項添加到菜單中。 |
add_radiobutton(options) | 此方法將radiobutton添加到菜單中。 |
add_checkbutton(options) | 此方法用於將復選框添加到菜單中。 |
add_cascade(options) | 用於通過將給定菜單與父菜單相關聯來為父菜單創建分層菜單。 |
add_seperator() | 用於將分隔線添加到菜單中。 |
add(type,options) | 用於將特定菜單項添加到菜單中。 |
delete(startindex,endindex) | 用於刪除指定范圍內存在的菜單項 |
entryconfig(index,options) | 它用於配置由給定索引標識的菜單項。 |
index(item) | 用於獲取指定菜單項的索引 |
insert_seperator(index) | 用於在指定的索引處插入分隔符。 |
invoke(index) | 它用於調用與指定索引處給出的選項相關聯。 |
type(index) | 它用於獲取索引指定的選擇類型。 |
- 示例一
- 創建頂級菜單
- 可以通過實例化Menu小部件並將菜單項添加到菜單來創建頂級菜單。
from tkinter import *
root = Tk()
def hello():
print("hello!")
# create a toplevel menu
menubar = Menu(root)
menubar.add_command(label="Hello!", command=hello)
menubar.add_command(label="Quit!", command=root.quit)
# display the menu
root.config(menu=menubar)
root.mainloop()
- 輸出
(單擊hello Menubutton將在控制台上打印hello,而單擊Quit Menubutton將退出python應用程序)
- 示例二
from tkinter import Toplevel, Button, Tk, Menu
root = Tk()
menubar = Menu(root)
file = Menu(menubar, tearoff=0)
file.add_command(label="New")
file.add_command(label="Open")
file.add_command(label="Save")
file.add_command(label="Save as...")
file.add_command(label="Close")
file.add_separator() # 添加一條分割線
file.add_command(label="Exit", command=top.quit)
menubar.add_cascade(label="File", menu=file)
edit = Menu(menubar, tearoff=0)
edit.add_command(label="Undo")
edit.add_separator()
edit.add_command(label="Cut")
edit.add_command(label="Copy")
edit.add_command(label="Paste")
edit.add_command(label="Delete")
edit.add_command(label="Select All")
menubar.add_cascade(label="Edit", menu=edit)
help = Menu(menubar, tearoff=0)
help.add_command(label="About")
menubar.add_cascade(label="Help", menu=help)
root.config(menu=menubar)
root.mainloop()
- 輸出