最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Python中Tkinter組件Menu的具體使用

 更新時(shí)間:2022年01月11日 15:05:44   作者:來(lái)自江南的你  
本文主要介紹了Python中Tkinter組件Menu的具體使用,Menu組件用于實(shí)現(xiàn)頂級(jí)菜單、下拉菜單和彈出菜單,文中通過(guò)示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下

Menu(菜單)組件用于實(shí)現(xiàn)頂級(jí)菜單、下拉菜單和彈出菜單。

何時(shí)使用 Menu 組件?

Menu 組件通常被用于實(shí)現(xiàn)應(yīng)用程序上的各種菜單,由于該組件是底層代碼實(shí)現(xiàn),所以不建議你自行通過(guò)按鈕和其他組件來(lái)實(shí)現(xiàn)菜單功能。

用法

創(chuàng)建一個(gè)頂級(jí)菜單,你需要先創(chuàng)建一個(gè)菜單實(shí)例,然后使用 add() 方法將命令和其它子菜單添加進(jìn)去:

import tkinter as tk
 
root = tk.Tk()
 
def callback():
        print("~被調(diào)用啦~")
 
#創(chuàng)建一個(gè)頂級(jí)菜單
menubar = tk.Menu(root)
menubar.add_command(label = "Hello", command = callback)
menubar.add_command(label = "Quit", command = root.quit)
 
#顯示菜單
root.config(menu = menubar)
 
root.mainloop()

創(chuàng)建一個(gè)下拉菜單(或者其他子菜單),方法也是大同小異,最主要的區(qū)別是它們最后需要添加到主菜單上(而不是窗口上):

import tkinter as tk
 
root = tk.Tk()
 
def callback():
    print("~被調(diào)用了~")
 
# 創(chuàng)建一個(gè)頂級(jí)菜單
menubar = tk.Menu(root)
 
# 創(chuàng)建一個(gè)下拉菜單“文件”,然后將它添加到頂級(jí)菜單中
filemenu = tk.Menu(menubar, tearoff=False)
filemenu.add_command(label="打開(kāi)", command=callback)
filemenu.add_command(label="保存", command=callback)
filemenu.add_separator()
filemenu.add_command(label="退出", command=root.quit)
menubar.add_cascade(label="文件", menu=filemenu)
 
# 創(chuàng)建另一個(gè)下拉菜單“編輯”,然后將它添加到頂級(jí)菜單中
editmenu = tk.Menu(menubar, tearoff=False)
editmenu.add_command(label="剪切", command=callback)
editmenu.add_command(label="拷貝", command=callback)
editmenu.add_command(label="粘貼", command=callback)
menubar.add_cascade(label="編輯", menu=editmenu)
 
# 顯示菜單
root.config(menu=menubar)
 
root.mainloop()

創(chuàng)建一個(gè)彈出菜單方法也是一致的,不過(guò)需要使用 post() 方法明確的將其顯示出來(lái):

import tkinter as tk
 
root = tk.Tk()
 
def callback():
    print("~被調(diào)用了~")
 
# 創(chuàng)建一個(gè)彈出菜單
menu = tk.Menu(root, tearoff=False)
menu.add_command(label="撤銷(xiāo)", command=callback)
menu.add_command(label="重做", command=callback)
 
frame = tk.Frame(root, width=512, height=512)
frame.pack()
 
def popup(event):
    menu.post(event.x_root, event.y_root)
 
# 綁定鼠標(biāo)右鍵
frame.bind("<Button-3>", popup)
 
root.mainloop()

參數(shù)

Menu(master=None, **options) (class)

master -- 父組件

**options -- 組件選項(xiàng),下方表格詳細(xì)列舉了各個(gè)選項(xiàng)的具體含義和用法:

選項(xiàng)含義
activebackground設(shè)置當(dāng) Menu 處于 "active" 狀態(tài)(通過(guò) state 選項(xiàng)設(shè)置狀態(tài))的背景色
activeborderwidth設(shè)置當(dāng) Menu 處于 "active" 狀態(tài)(通過(guò) state 選項(xiàng)設(shè)置狀態(tài))的邊框?qū)挾?/td>
activeforeground設(shè)置當(dāng) Menu 處于 "active" 狀態(tài)(通過(guò) state 選項(xiàng)設(shè)置狀態(tài))的前景色
background設(shè)置背景顏色
bg跟 background 一樣
borderwidth指定邊框?qū)挾?/td>
bd跟 borderwidth 一樣
cursor指定當(dāng)鼠標(biāo)在 Menu 上飄過(guò)的時(shí)候的鼠標(biāo)樣式
disabledforeground指定當(dāng) Menu 處于 "disabled" 狀態(tài)的時(shí)候的前景色
font指定 Menu 中文本的字體
foreground設(shè)置 Menu 的前景色
fg跟 foreground 一樣
postcommand將此選項(xiàng)與一個(gè)方法相關(guān)聯(lián),當(dāng)菜單被打開(kāi)的時(shí)候該方法將自動(dòng)被調(diào)用
relief1. 指定邊框樣式
2. 默認(rèn)值是 "flat"
3. 另外你還可以設(shè)置 "sunken","raised","groove" 或 "ridge"
selectcolor指定當(dāng)菜單項(xiàng)顯示為單選按鈕或多選按鈕時(shí)選擇中標(biāo)志的顏色
tearoff1. 默認(rèn)情況下菜單可以被“撕下”(點(diǎn)擊 IDLE 菜單上邊的 --------- 試試)
2. 將該選項(xiàng)設(shè)置為 Flase 關(guān)閉這一特性
tearoffcommand如果你希望當(dāng)用戶(hù)“撕下”你的菜單時(shí)通知你的程序,那么你可以將該選項(xiàng)與一個(gè)方法相關(guān)聯(lián),那么當(dāng)用戶(hù)“撕下”你的菜單時(shí),Tkinter 會(huì)帶著兩個(gè)參數(shù)去調(diào)用你的方法(一個(gè)參數(shù)是當(dāng)前窗口的 ID,另一個(gè)參數(shù)是承載被“撕下”的菜單的窗口 ID)
title默認(rèn)情況下,被“撕下”的菜單標(biāo)題是其主菜單的名字,不過(guò)你也可以通過(guò)修改此項(xiàng)的值來(lái)修改標(biāo)題

方法

add(type, **options)
-- type 參數(shù)指定添加的菜單類(lèi)型,可以是:"command","cascade","checkbutton","radiobutton" 或 "separator"
-- 還可以通過(guò) options 選項(xiàng)設(shè)置菜單的屬性,下表列舉了 options 可以使用的選項(xiàng)和具體含義:

選項(xiàng)含義
accelerator1. 顯示該菜單項(xiàng)的加速鍵(快捷鍵)
2. 例如 accelerator = "Ctrl+N"
3. 該選項(xiàng)僅顯示,并沒(méi)有實(shí)現(xiàn)加速鍵的功能(通過(guò)按鍵綁定實(shí)現(xiàn))
activebackground設(shè)置當(dāng)該菜單項(xiàng)處于 "active" 狀態(tài)(通過(guò) state 選項(xiàng)設(shè)置狀態(tài))的背景色
activeforeground設(shè)置當(dāng)該菜單項(xiàng)處于 "active" 狀態(tài)(通過(guò) state 選項(xiàng)設(shè)置狀態(tài))的前景色
background設(shè)置該菜單項(xiàng)的背景顏色
bitmap指定顯示到該菜單項(xiàng)上的位圖
columnbreak從該菜單項(xiàng)開(kāi)始另起一列顯示
command將該選項(xiàng)與一個(gè)方法相關(guān)聯(lián),當(dāng)用戶(hù)點(diǎn)擊該菜單項(xiàng)時(shí)將自動(dòng)調(diào)用此方法
compound1. 控制菜單項(xiàng)中文本和圖像的混合模式
2. 如果該選項(xiàng)設(shè)置為 "center",文本顯示在圖像上(文本重疊圖像)
3. 如果該選項(xiàng)設(shè)置為 "bottom","left","right" 或 "top",那么圖像顯示在文本的旁邊(如 "bottom",則圖像在文本的下方
font指定文本的字體
foreground設(shè)置前景色
hidemargin是否顯示菜單項(xiàng)旁邊的空白
image1. 指定菜單項(xiàng)顯示的圖片
2. 該值應(yīng)該是 PhotoImage,BitmapImage,或者能兼容的對(duì)象
label指定菜單項(xiàng)顯示的文本
menu1. 該選項(xiàng)僅在 cascade 類(lèi)型的菜單中使用
2. 用于指定它的下級(jí)菜單
offvalue1. 默認(rèn)情況下,variable 選項(xiàng)設(shè)置為 1 表示選中狀態(tài),反之設(shè)置為 0
2. 設(shè)置 offvalue 的值可以自定義未選中狀態(tài)的值
onvalue1. 默認(rèn)情況下,variable 選項(xiàng)設(shè)置為 1 表示選中狀態(tài),反之設(shè)置為 0
2. 設(shè)置 onvalue 的值可以自定義選中狀態(tài)的值
selectcolor指定當(dāng)菜單項(xiàng)顯示為單選按鈕或多選按鈕時(shí)選擇中標(biāo)志的顏色
selectimage如果你在單選按鈕或多選按鈕菜單中使用圖片代替文本,那么設(shè)置該選項(xiàng)指定被菜單項(xiàng)被選中時(shí)顯示的圖片
state1. 跟 text 選項(xiàng)一起使用,用于指定哪一個(gè)字符畫(huà)下劃線(例如用于表示鍵盤(pán)快捷鍵)
underline1. 用于指定在該菜單項(xiàng)的某一個(gè)字符處畫(huà)下劃線
2. 例如設(shè)置為 1,則說(shuō)明在該菜單項(xiàng)的第 2 個(gè)字符處畫(huà)下劃線
value1. 當(dāng)菜單項(xiàng)為單選按鈕時(shí),用于標(biāo)志該按鈕的值
2. 在同一組中的所有按鈕應(yīng)該擁有各不相同的值
3. 通過(guò)將該值與 variable 選項(xiàng)的值對(duì)比,即可判斷用戶(hù)選中了哪個(gè)按鈕
4. 如在使用上有不懂具體可以參照 Radiobutton 組件的說(shuō)明
variable1. 當(dāng)菜單項(xiàng)是單選按鈕或多選按鈕時(shí),與之關(guān)聯(lián)的變量
2. 如在使用上有不懂具體可以參照:CheckbuttonRadiobutton 組件的說(shuō)明

add_cascade(**options)
-- 添加一個(gè)父菜單
-- 相當(dāng)于 add("cascade", **options)

add_checkbutton(**options)
-- 添加一個(gè)多選按鈕的菜單項(xiàng)
-- 相當(dāng)于 add("checkbutton", **options)

add_command(**options)
-- 添加一個(gè)普通的命令菜單項(xiàng)
-- 相當(dāng)于 add("command", **options)

add_radiobutton(**options)
-- 添加一個(gè)單選按鈕的菜單項(xiàng)
-- 相當(dāng)于 add("radiobutton", **options)

add_separator(**options)
-- 添加一條分割線
-- 相當(dāng)于 add("separator", **options)

delete(index1, index2=None)
-- 刪除 index1 ~ index2(包含)的所有菜單項(xiàng)
-- 如果忽略 index2 參數(shù),則刪除 index1 指向的菜單項(xiàng)
-- 注意:對(duì)于一個(gè)被“撕下”的菜單,你無(wú)法使用該方法

entrycget(index, option)
-- 獲得指定菜單項(xiàng)的某選項(xiàng)的值

entryconfig(index, **options)
-- 設(shè)置指定菜單項(xiàng)的選項(xiàng)
-- 選項(xiàng)的參數(shù)及具體含義請(qǐng)參考上方 add() 方法

entryconfigure(index, **options)
-- 跟 entryconfig() 一樣

index(index)
-- 返回與 index 參數(shù)相應(yīng)的選項(xiàng)的序號(hào)(例如 e.index("end"))

insert(index, itemType, **options)
-- 插入指定類(lèi)型的菜單項(xiàng)到 index 參數(shù)指定的位置
-- itemType 參數(shù)指定添加的菜單類(lèi)型,可以是:"command","cascade","checkbutton","radiobutton" 或 "separator"
-- 選項(xiàng)的參數(shù)及具體含義請(qǐng)參考上方 add() 方法

insert_cascade(index, **options)
-- 在 index 參數(shù)指定的位置添加一個(gè)父菜單
-- 相當(dāng)于 insert("cascade", **options)

insert_checkbutton(index, **options)
-- 在 index 參數(shù)指定的位置添加一個(gè)多選按鈕
-- 相當(dāng)于 insert("checkbutton", **options)

insert_command(index, **options)
-- 在 index 參數(shù)指定的位置添加一個(gè)普通的命令菜單項(xiàng)
-- 相當(dāng)于 insert("command", **options)

insert_radiobutton(index, **options)
-- 在 index 參數(shù)指定的位置添加一個(gè)單選按鈕
-- 相當(dāng)于 insert("radiobutton", **options)

insert_separator(index, **options)
-- 在 index 參數(shù)指定的位置添加一條分割線
-- 相當(dāng)于 insert("separator", **options)

invoke(index)
-- 調(diào)用 index 指定的菜單項(xiàng)相關(guān)聯(lián)的方法
-- 如果是單選按鈕,設(shè)置該菜單項(xiàng)為選中狀態(tài)
-- 如果是多選按鈕,切換該菜單項(xiàng)的選中狀態(tài)

post(x, y)
-- 在指定的位置顯示彈出菜單
-- 參考上方【用法】中的創(chuàng)建彈窗菜單的例子

type(index)
-- 獲得 index 參數(shù)指定菜單項(xiàng)的類(lèi)型
-- 返回值可以是:"command","cascade","checkbutton","radiobutton" 或 "separator"

unpost()
-- 移除彈出菜單

yposition(index)
-- 返回 index 參數(shù)指定的菜單項(xiàng)的垂直偏移位置
-- 該方法的目的是為了讓你精確放置相對(duì)于當(dāng)前鼠標(biāo)的位置彈出菜單

到此這篇關(guān)于Python中Tkinter組件Menu的具體使用的文章就介紹到這了,更多相關(guān)Python Tkinter Menu內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

您可能感興趣的文章:

相關(guān)文章

  • Python??Pandas教程之使用?pandas.read_csv()?讀取?csv

    Python??Pandas教程之使用?pandas.read_csv()?讀取?csv

    這篇文章主要介紹了Python Pandas教程之使用pandas.read_csv()讀取csv,文章通過(guò)圍繞主題展開(kāi)詳細(xì)的內(nèi)容介紹,具有一定的參考價(jià)值,需要的小伙伴可以參考一下
    2022-09-09
  • Python PCA降維的兩種實(shí)現(xiàn)方法

    Python PCA降維的兩種實(shí)現(xiàn)方法

    大家好,本篇文章主要講的是Python PCA降維的兩種實(shí)現(xiàn)方法,感興趣的的同學(xué)趕快來(lái)看一看吧,對(duì)你有幫助的話記得收藏一下
    2022-01-01
  • python區(qū)塊及區(qū)塊鏈的開(kāi)發(fā)詳解

    python區(qū)塊及區(qū)塊鏈的開(kāi)發(fā)詳解

    這篇文章主要介紹了python區(qū)塊及區(qū)塊鏈的開(kāi)發(fā)詳解的相關(guān)資料,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2019-07-07
  • python使用opencv實(shí)現(xiàn)馬賽克效果示例

    python使用opencv實(shí)現(xiàn)馬賽克效果示例

    這篇文章主要介紹了python使用opencv實(shí)現(xiàn)馬賽克效果,結(jié)合實(shí)例形式分析了Python使用cv2模塊操作圖片實(shí)現(xiàn)馬賽克效果的相關(guān)技巧,需要的朋友可以參考下
    2019-09-09
  • opencv轉(zhuǎn)換顏色空間更改圖片背景

    opencv轉(zhuǎn)換顏色空間更改圖片背景

    這篇文章主要為大家詳細(xì)介紹了opencv轉(zhuǎn)換顏色空間更改圖片背景,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2019-08-08
  • Pytorch保存模型用于測(cè)試和用于繼續(xù)訓(xùn)練的區(qū)別詳解

    Pytorch保存模型用于測(cè)試和用于繼續(xù)訓(xùn)練的區(qū)別詳解

    今天小編就為大家分享一篇Pytorch保存模型用于測(cè)試和用于繼續(xù)訓(xùn)練的區(qū)別詳解,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧
    2020-01-01
  • python卸載numpy出現(xiàn)WinError:拒絕訪問(wèn)的解決方案

    python卸載numpy出現(xiàn)WinError:拒絕訪問(wèn)的解決方案

    這篇文章主要介紹了python卸載numpy出現(xiàn)WinError:拒絕訪問(wèn)的解決方案,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2023-08-08
  • Python操作Excel工作簿的示例代碼(\*.xlsx)

    Python操作Excel工作簿的示例代碼(\*.xlsx)

    這篇文章主要介紹了Python操作Excel工作簿的示例代碼(\*.xlsx),文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2020-03-03
  • Python使用Opencv實(shí)現(xiàn)邊緣檢測(cè)以及輪廓檢測(cè)的實(shí)現(xiàn)

    Python使用Opencv實(shí)現(xiàn)邊緣檢測(cè)以及輪廓檢測(cè)的實(shí)現(xiàn)

    這篇文章主要介紹了Python使用Opencv實(shí)現(xiàn)邊緣檢測(cè)以及輪廓檢測(cè)的實(shí)現(xiàn),文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2020-12-12
  • Python unittest 自動(dòng)識(shí)別并執(zhí)行測(cè)試用例方式

    Python unittest 自動(dòng)識(shí)別并執(zhí)行測(cè)試用例方式

    這篇文章主要介紹了Python unittest 自動(dòng)識(shí)別并執(zhí)行測(cè)試用例方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧
    2020-03-03

最新評(píng)論

广东省| 钦州市| 加查县| 洪湖市| 刚察县| 台南市| 肥东县| 屯留县| 南投市| 青海省| 承德县| 米林县| 嵩明县| 佛坪县| 庆阳市| 绥阳县| 六枝特区| 军事| 石林| 华亭县| 保康县| 黑山县| 武山县| 浠水县| 邯郸县| 阳春市| 芜湖市| 商洛市| 射阳县| 弥勒县| 临海市| 甘孜县| 将乐县| 通道| 常山县| 秦安县| 桦南县| 江津市| 玛多县| 遂川县| 武穴市|