選單部件的建立及其選項
選單中的選項可以是本文, 圖片, 級聯, 核取按鈕 Checkbutton, 或一群的單選按鈕 Radiobutton.
import tkinter as tk
parent = tk.Tk()
menu_widget = tk.Menu(parent, option, ...)
選項 | 說明 |
---|---|
activebackground | active 時的背景色 |
activeborderwidth | active 時的邊框寬度, 內定為 1 圖素 |
activeforeground | active 時的前景色 |
bg or background | 背景色 |
bd or borderwidth | 框的寛度, 內定為 1 圖素 |
cursor | 當滑鼠移到部件時,所顯示的滑鼠圖示 |
disabledforeground | disabled 時的前景色 |
font | 文字字型 |
fg or foreground | 前景色 |
postcommand | 每次選單呼叫時, 都呼叫該程式 |
relief | 花邊樣式,內定為 RAISE |
selectcolor | 被選擇 checkbutton 或 radiobutton 的顏色 |
tearoff | 有無下拉式選單, 第一項是否為下拉元素 |
tearoffcommand | 下拉選單呼叫程式, 兩個引數為原父視窗ID以及新下拉式選單的根視窗ID |
title | 另設定下拉式選單的視窗標題 |
- ‘cascade’ 級聯類選單項
- ‘checkbutton’ 核取按鈕類選單項
- ‘command’ 一般命令選單項
- ‘radiobutton’ 單選按鈕類選單項
- ‘separator’ 分隔線類選單項
方法 & 說明 |
---|
add(kind, coption, …) 增加下一個選單選項 |
add_cascade(coption, …) 同add(‘cascade’, coption, …) |
add_checkbutton(coption, …) 同add(‘checkbutton’, coption, …) |
add_command(coption, …) 同add(‘command’, coption, …) |
add_radiobutton(coption, …) 同add(‘radiobutton’, coption, …) |
add_separator() 同add(‘separator’, coption, …) |
delete(index1, index2=None) 刪除第index1項(到含第index2項)的選單項 |
entrycget(index, coption) 返回第index選單項的coption值 |
entryconfigure(index, coption, …) 設定第index選單項的coption值 |
index(i) 返回選擇索引的選單項的index |
insert_cascade(index, coption, …) 類似add(kind, coption, …), 但為插入方式 |
insert_checkbutton(index, coption, …) 類似add(kind, coption, …), 但為插入方式 |
insert_command(index, coption, …) 類似add(kind, coption, …), 但為插入方式 |
insert_radiobutton(index, coption, …) 類似add(kind, coption, …), 但為插入方式 |
insert_separator(index) 類似add(kind, coption, …), 但為插入方式 |
invoke(index) 類似點選該選單項 |
post(x, y) 選單顯示座標位置 (x, y) |
type(index) 返回索引處選單項的型別tk.CASCADE, tk.CHECKBUTTON, tk.COMMAND, tk.RADIOBUTTON, tk.SEPARATOR, or tk.TEAROFF |
yposition(n) 返回第n個選單項的對應畫素y位置 |
選單方法的 coption 選項
選項 | 說明 |
---|---|
accelerator | 僅顯示快捷鍵, 如 ‘^X’ 表示 ctrl-X, 實際上必須另外繫結按鍵 |
activebackground | active 時的背景色 |
activeforeground | active 時的前景色 |
background | 背景色 |
bitmap | 點陣圖 |
columnbreak | 選單項是否往右延伸, 內定為否, 以下延伸 |
command | 部件狀態值改變呼叫的程式 |
compound | 圖與文字共用時,圖相對於文字的位置. LEFT/RIGHT/TOP/BOTTOM/CENTER |
font | 文字字型 |
foreground | 前景色,點陣圖時為顏色值 1 的顏色 |
hidemargin | 是否去掉左右的間距, 內定為否 |
image | 圖片 |
label | 選單項的文字 |
menu | 級聯類選單項 |
offvalue | checkbutton 核取按鈕類選單項的 off 值, 內定為 0 |
onvalue | checkbutton 核取按鈕類選單項的 on 值, 內定為 1 |
selectcolor | 設定checkbutton或者radiobutton的顏色 |
selectimage | 設定顯示不同的圖片和未被選中的狀態相區分 |
state | 狀態 NORMAL 內定 / ACTIVE/DISABLED |
underline | 設定下底線的位置,內定 -1 為無 |
value | radiobutton選單項的數值 |
variable | checkbutton或者radiobutton的變數 |
範例視窗及程式碼
import tkinter as tk
root = tk.Tk()
root.wm_title("Menu Demo")
font = ('Courier New', 16, 'bold')
main_menu = tk.Menu(root, font=font)
root.config(menu=menu)
menu_file = tk.Menu(main_menu, font=font, tearoff=0)
main_menu.add_cascade(label='File', font=font, menu=menu_file)
menu_file.add_command(label='New', accelerator='^N')
menu_file.add_command(label='Open', accelerator='^O')
menu_file.add_command(label='Files', accelerator='^F')
menu_edit = tk.Menu(main_menu, font=font, tearoff=0)
main_menu.add_cascade(label='Edit', font=font, menu=menu_edit)
menu_edit.add_command(label='Search', accelerator='^S')
menu_edit.add_command(label='Replace', accelerator='^R')
menu_edit.add_command(label='Copy', accelerator='^C')
menu_help = tk.Menu(main_menu, font=font, tearoff=0)
main_menu.add_cascade(label='Help', font=font, menu=menu_help)
menu_help.add_command(label='About', accelerator='^A')
menu_help.add_command(label='Version', accelerator='^V')
menu_help.add_command(label='Manual', accelerator='^M')
root.mainloop()
本作品採用《CC 協議》,轉載必須註明作者和本文連結