tkinter中控制項menu的兩種組織方法

2022-05-09 03:00:07 字數 3869 閱讀 2302

tkinter中,選單控制項組織方法有兩種,使用中常出現混淆,為明晰各個正確用法,特整理撰寫此博文。選單控制項的組織實際上是通過乙個「母選單」和「子選單」構成,「母選單」一方面與master連線(即與依附控制項的關聯),一方面與」子選單「連線,而子選單則負責展示及響應。

」母選單「可以採用menu類或者menubutton類,由此產生出兩種組織方法:

(1)menu類:

能與toplevel和tk類關聯,但不可以與frame類關聯:menu=menu(toplevel());toplevel().config(menu=menu)

與」子選單「的關聯為:pulldown=menu(menu);menu.add_cascade(menu=pulldown,label='text')

而不能與tk類,和frame類關聯;

如下**:

(2)menubutton類:

可以與tk類,frame類,toplevel類關聯:menubutton=menubutton(root,text='text');menubutton.pack();

與」子選單「的關聯為:pulldown=menu(menubutton);menubutton.config(menu=pulldown)

而當」子選單「擴充套件時,可以繼續使用add_cascade方法,從這個角度看,」母選單「使用menu類的組織方法可以看作是menu控制項的擴充套件方法。

下面是兩個簡單的demo:

>>> from tkinter import *

>>> root=toplevel()

>>> menu=menu(root)

>>> root.config(menu=menu)

>>> pulldow=menu(menu)

>>> pulldow.add_command(label='test1')

>>> pulldow.add_command(label='test2')

>>> pulldow.add_separator()

>>> menu.add_cascade(menu=pulldow,label='menu')

>>> from tkinter import *

>>> root=tk()

>>> menubtn=menubutton(root,text='menubtn')

>>> menubtn.pack()

>>> pulldown=menu(menubtn)

>>> pulldown.add_command(label='test1',command=none)

>>> pulldown.add_command(label='test2',command=none)

>>> menubtn.config(menu=pulldown)

總結:兩種方式中,第乙個menu的安置需要依附控制項(root,toplevel)的config方法;」母選單「為menu類時,實質是menu的擴充套件;」母選單「為menubutton時,它本身具有button的屬性,所以引數需要master,text,command,聯結」子選單「時(肯定是第乙個menu類),所以需要config方法,需要注意的是menu不可以依附在frame上,而menubutton可以。

tkinter中menu選單控制項(十二)

1 import tkinter 23 wuya tkinter.tk 4 wuya.title wuya 5 wuya.geometry 300x200 10 20 678 建立選單欄下方的選單條 9 mubar tkinter.menu wuya 10 wuya.config menu muba...

menu控制項的使用

在.net的導航控制項中,我用的最多的是treeview控制項,今天無意間用到了menu控制項,感覺挺好的.寫出來當作筆記吧 前台 後台 region 頁面初始化 protected void page load object sender,eventargs e endregion region ...

python3 tkinter之Menu食用方法

usr bin python coding utf 8 from tkinter import def newfile print new file def openfile print open def about print this is a example of a menu root tk...