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

Python Tkinter Menu組件詳解

 更新時間:2021年10月08日 14:35:53   作者:來自江南的你  
這篇文章主要介紹了Python TkinterMenu 組件用法,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下

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

何時使用 Menu 組件?

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

用法

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

import tkinter as tk
 
root = tk.Tk()
 
def callback():
        print("~被調(diào)用啦~")
 
#創(chuàng)建一個頂級菜單
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)建一個下拉菜單(或者其他子菜單),方法也是大同小異,最主要的區(qū)別是它們最后需要添加到主菜單上(而不是窗口上):

import tkinter as tk
 
root = tk.Tk()
 
def callback():
    print("~被調(diào)用了~")
 
# 創(chuàng)建一個頂級菜單
menubar = tk.Menu(root)
 
# 創(chuàng)建一個下拉菜單“文件”,然后將它添加到頂級菜單中
filemenu = tk.Menu(menubar, tearoff=False)
filemenu.add_command(label="打開", 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)建另一個下拉菜單“編輯”,然后將它添加到頂級菜單中
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)建一個彈出菜單方法也是一致的,不過需要使用 post() 方法明確的將其顯示出來:

import tkinter as tk
 
root = tk.Tk()
 
def callback():
    print("~被調(diào)用了~")
 
# 創(chuàng)建一個彈出菜單
menu = tk.Menu(root, tearoff=False)
menu.add_command(label="撤銷", 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)
 
# 綁定鼠標右鍵
frame.bind("<Button-3>", popup)
 
root.mainloop()

參數(shù)

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

master -- 父組件

**options -- 組件選項,下方表格詳細列舉了各個選項的具體含義和用法:

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

方法

add(type, **options)

-- type 參數(shù)指定添加的菜單類型,可以是:"command","cascade","checkbutton","radiobutton" 或 "separator"

-- 還可以通過 options 選項設(shè)置菜單的屬性,下表列舉了 options 可以使用的選項和具體含義:

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

add_cascade(**options)

-- 添加一個父菜單

-- 相當于 add("cascade", **options)

add_checkbutton(**options)

-- 添加一個多選按鈕的菜單項

-- 相當于 add("checkbutton", **options)

add_command(**options)

-- 添加一個普通的命令菜單項

-- 相當于 add("command", **options)

add_radiobutton(**options)

-- 添加一個單選按鈕的菜單項

-- 相當于 add("radiobutton", **options)

add_separator(**options)

-- 添加一條分割線

-- 相當于 add("separator", **options)

delete(index1, index2=None)

-- 刪除 index1 ~ index2(包含)的所有菜單項

-- 如果忽略 index2 參數(shù),則刪除 index1 指向的菜單項

-- 注意:對于一個被“撕下”的菜單,你無法使用該方法

entrycget(index, option)

-- 獲得指定菜單項的某選項的值

entryconfig(index, **options)

-- 設(shè)置指定菜單項的選項

-- 選項的參數(shù)及具體含義請參考上方 add() 方法

entryconfigure(index, **options)

-- 跟 entryconfig() 一樣

index(index)

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

insert(index, itemType, **options)

-- 插入指定類型的菜單項到 index 參數(shù)指定的位置

-- itemType 參數(shù)指定添加的菜單類型,可以是:"command","cascade","checkbutton","radiobutton" 或 "separator"

-- 選項的參數(shù)及具體含義請參考上方 add() 方法

insert_cascade(index, **options)

-- 在 index 參數(shù)指定的位置添加一個父菜單

-- 相當于 insert("cascade", **options)

insert_checkbutton(index, **options)

-- 在 index 參數(shù)指定的位置添加一個多選按鈕

-- 相當于 insert("checkbutton", **options)

insert_command(index, **options)

-- 在 index 參數(shù)指定的位置添加一個普通的命令菜單項

-- 相當于 insert("command", **options)

insert_radiobutton(index, **options)

-- 在 index 參數(shù)指定的位置添加一個單選按鈕

-- 相當于 insert("radiobutton", **options)

insert_separator(index, **options)

-- 在 index 參數(shù)指定的位置添加一條分割線

-- 相當于 insert("separator", **options)

invoke(index)

-- 調(diào)用 index 指定的菜單項相關(guān)聯(lián)的方法

-- 如果是單選按鈕,設(shè)置該菜單項為選中狀態(tài)

-- 如果是多選按鈕,切換該菜單項的選中狀態(tài)

post(x, y)

-- 在指定的位置顯示彈出菜單

-- 參考上方【用法】中的創(chuàng)建彈窗菜單的例子

type(index)

-- 獲得 index 參數(shù)指定菜單項的類型

-- 返回值可以是:"command","cascade","checkbutton","radiobutton" 或 "separator"

unpost()

-- 移除彈出菜單、

yposition(index)

-- 返回 index 參數(shù)指定的菜單項的垂直偏移位置

-- 該方法的目的是為了讓你精確放置相對于當前鼠標的位置彈出菜單

總結(jié)

本篇文章就到這里了,希望能夠給你帶來幫助,也希望您能夠多多關(guān)注腳本之家的更多內(nèi)容!

您可能感興趣的文章:

相關(guān)文章

  • Python創(chuàng)建高強度密碼生成工具方法實例

    Python創(chuàng)建高強度密碼生成工具方法實例

    這篇文章主要為大家介紹了Python創(chuàng)建高強度密碼生成工具方法實例,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2023-12-12
  • python3監(jiān)控CentOS磁盤空間腳本

    python3監(jiān)控CentOS磁盤空間腳本

    這篇文章主要為大家詳細介紹了Python3監(jiān)控CentOS磁盤空間腳本,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2018-06-06
  • 詳解pandas數(shù)據(jù)合并與重塑(pd.concat篇)

    詳解pandas數(shù)據(jù)合并與重塑(pd.concat篇)

    這篇文章主要介紹了詳解pandas數(shù)據(jù)合并與重塑(pd.concat篇),文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2019-07-07
  • Python實現(xiàn)合成多張圖片到PDF格式

    Python實現(xiàn)合成多張圖片到PDF格式

    在日常生活中,經(jīng)常會遇到需要提交身份證正反面證明資料的情況,而且這些網(wǎng)站大部分只接受pdf格式,這時候我們就需要把身份證正反面兩張圖片合成為一個pdf文件。本文將為大家提供用Python實現(xiàn)這一要求的方法,需要的可以參考一下
    2022-02-02
  • Python+OpenCV實現(xiàn)車牌字符分割和識別

    Python+OpenCV實現(xiàn)車牌字符分割和識別

    這篇文章主要為大家詳細介紹了Python+OpenCV實現(xiàn)車牌字符分割和識別,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2018-03-03
  • 使用pandas模塊讀取csv文件和excel表格,并用matplotlib畫圖的方法

    使用pandas模塊讀取csv文件和excel表格,并用matplotlib畫圖的方法

    今天小編就為大家分享一篇使用pandas模塊讀取csv文件和excel表格,并用matplotlib畫圖的方法,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2018-06-06
  • Elasticsearch映射字段數(shù)據(jù)類型及管理

    Elasticsearch映射字段數(shù)據(jù)類型及管理

    這篇文章主要介紹了Elasticsearch映射字段數(shù)據(jù)類型及管理的講解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2022-04-04
  • Python入門教程(九)Python字符串介紹

    Python入門教程(九)Python字符串介紹

    這篇文章主要介紹了Python入門教程(九)Python字符串,Python是一門非常強大好用的語言,也有著易上手的特性,本文為入門教程,需要的朋友可以參考下
    2023-04-04
  • Numpy隨機抽樣的實現(xiàn)

    Numpy隨機抽樣的實現(xiàn)

    本文主要介紹了Numpy隨機抽樣的實現(xiàn),文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2023-03-03
  • Python語言實現(xiàn)將圖片轉(zhuǎn)化為html頁面

    Python語言實現(xiàn)將圖片轉(zhuǎn)化為html頁面

    這篇文章主要介紹了Python實現(xiàn)將圖片轉(zhuǎn)化為html頁面,具有一定參考價值,需要的朋友可以了解下。
    2017-12-12

最新評論

嘉善县| 星座| 疏勒县| 道孚县| 成都市| 武邑县| 宁德市| 景德镇市| 尉犁县| 宕昌县| 汉沽区| 阿尔山市| 勃利县| 孝义市| 来凤县| 无为县| 黄浦区| 衡东县| 抚远县| 昌乐县| 乌拉特后旗| 清新县| 河北区| 绥化市| 楚雄市| 疏勒县| 逊克县| 平阴县| 汉川市| 庄浪县| 邢台市| 阜阳市| 潜山县| 三亚市| 永安市| 叙永县| 井研县| 万州区| 昌都县| 绿春县| 平邑县|