python的menu_Python Tkinter Menu使用教程 | 學步園
Menu類控件用來實現頂層/下拉/彈出菜單。
Patterns
Toplevel menus被用來顯示在標題欄/root窗口或者其他頂層窗口上。創建一個頂層菜單,創建Menu類的實例,然後使用add方法添加命令或者其他菜單內容。
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()
運行程序,如下圖所示:
下拉菜單或者其他子菜單可以通過相同的方式創建。一個主要的區別就是,他們是依附在主菜單上的(通過add_cascade方法),而不是在頂層窗口上。
root = Tk()
def hello():
print "hello!"
menubar = Menu(root)
# create a pulldown menu, and add it to the menu bar
filemenu = Menu(menubar, tearoff=0)
filemenu.add_command(label="Open", command=hello)
filemenu.add_command(label="Save", command=hello)
filemenu.add_separator()
filemenu.add_command(label="Exit", command=root.quit)
menubar.add_cascade(label="File", menu=filemenu)
# create more pulldown menus
editmenu = Menu(menubar, tearoff=0)
editmenu.add_command(label="Cut", command=hello)
editmenu.add_command(label="Copy", command=hello)
editmenu.add_command(label="Paste", command=hello)
menubar.add_cascade(label="Edit", menu=editmenu)
helpmenu = Menu(menubar, tearoff=0)
helpmenu.add_command(label="About", command=hello)
menubar.add_cascade(label="Help", menu=helpmenu)
# display the menu
root.config(menu=menubar)
最後我們通過同樣的方式創建一個彈出式菜單,但是通過post方法顯示顯示。
root = Tk()
def hello():
print "hello!"
# create a popup menu
menu = Menu(root, tearoff=0)
menu.add_command(label="Undo", command=hello)
menu.add_command(label="Redo", command=hello)
# create a canvas
frame = Frame(root, width=512, height=512)
frame.pack()
def popup(event):
menu.post(event.x_root, event.y_root)
# attach popup to canvas
frame.bind("", popup)
我們也可以在任何時候使用postcommand回調函數去創建或更新顯示的菜單。
counter = 0
def update():
global counter
counter = counter + 1
menu.entryconfig(0, label=str(counter))
root = Tk()
menubar = Menu(root)
menu = Menu(menubar, tearoff=0, postcommand=update)
menu.add_command(label=str(counter))
menu.add_command(label="Exit", command=root.quit)
menubar.add_cascade(label="Test", menu=menu)
root.config(menu=menubar)
運行此程序,點擊子菜單里第一個選項,就會調用update方法,從而重新配置自己,下一次再次點擊時,選項顯示的字符會自動加1。
第一次點擊:
第二次點擊:
python的menu_Python Tkinter Menu使用教程 | 學步園相关推荐
- Python GUI之tkinter窗口视窗教程大集合
Python GUI之tkinter窗口视窗教程大集合 一.前言 二.Tkinter是什么 三.Tkinter 控件详细介绍 1. Tkinter 模块元素简要说明 2. 常用窗口部件及简要说明: 四 ...
- Python GUI之tkinter窗口视窗教程大集合(看这篇就够了)
一.前言 由于本篇文章较长,所以下面给出内容目录方便跳转阅读,当然也可以用博客页面最右侧的文章目录导航栏进行跳转查阅. 一.前言 二.Tkinter 是什么 三.Tkinter 控件详细介绍 1. T ...
- Python GUI之tkinter窗口视窗教程
一.前言 由于本篇文章较长,所以下面给出内容目录方便跳转阅读,当然也可以用博客页面最右侧的文章目录导航栏进行跳转查阅. 一.前言 二.Tkinter 是什么 三.Tkinter 控件详细介绍 1. T ...
- python pyqt eric_python+PyQT+Eric安裝配置 | 學步園
一.大綱內容: 1.預備PC環境: 2.預備安裝程序: 2.1.下載Python3.2 2.2.下載PyQt4 2.3.下載Eric5 3.安裝配置步驟: 3.1.安裝Pyhon3.2 3.2.安裝P ...
- mysql jdbc 5.1.6_mysql5.0+Mysqljdbc5.1.6.jar的整合 | 學步園
今天早上開始就開始用Eclipse開發使用mysql的java Project和Tomcat Project,研究了一個上午,終於搞定. 其中java Project就是簡單的Main函數實現,Tom ...
- mysql存儲過程_Mysql存儲過程 | 學步園
一.創建存儲過程 在創建存儲過程之前,首先要了解delimiter 分界符,默認sql 語句分界符是 ; 分號,但為了寫較長的存儲過程,需要將默認分割符修改掉,建議修改為 //,如此之後,sql 語句 ...
- matlab engevalstring,Matlab 執行engEvalString命令介紹 | 學步園
MATLAB與VC混合編程指導書 在調用 Matlab 引擎之前,首先應在相關文件中加入一行: #include "enging.h" ,該文件包含了引擎 API 函數的說明和所需 ...
- 八字易经算法之用JAVA实现完整排盘系统_八字易經演算法之用JAVA實現完整排盤系統 | 學步園...
去年一天,一個朋友去看望病人回來就驚奇的告訴我,他發現和他朋友一起住院(肝膽科)的病人無一例外都是屬相為虎的病人,不是大一輪就是小一輪的.這是為什麼呢? 這不是什麼偶然,也不是什麼巧合.也許通過八字能 ...
- matlab怎么用wavedec,Matlab中wavedec使用學習及詳解 | 學步園
最近在使用對ECG訊號進行小波係數的提取,所以用到了wavedec這個matlab中內置函數.然後盡心學習,發現還挺高深,不是我學到的衹是一點皮毛,因爲要對一段波形進行特徵提取,所以我要看哪個小波係數 ...
- mysql計劃任務_MySQL計劃任務 | 學步園
MySQL的功能越來越強大了,逐漸在想大型商業資料庫靠攏了,這不,5.1的版本已然支持視圖.觸發器.job等功能. 下面簡單介紹下我所使用的MySQL的job功能(也就是計劃任務,Oracle中稱jo ...
最新文章
- Android之Adapter用法总结
- 在Android Studio进行“简单配置”单元测试(Android Junit)
- xdebug 远程调试
- ToolStrip和ToolStripButton的用法
- hadoop生态搭建(3节点)-10.spark配置
- 为了找工作的学习计划
- tomcat服务自动关闭_windows10系统关闭自动更新服务
- mysql索引b树和hash_B树索引和Hash索引的应用场景和区别(转载)
- 无法启动QPCore Service
- 【Algorithm】逆序数的分治求解
- (day 18 - 辅助栈)剑指 Offer 30. 包含min函数的栈
- 在飞桨平台做图像分类-1 制作基于飞桨的数据集|CSDN创作打卡
- 计算两个时间之间的进度百分比
- 视频问答社区VYou宣布关闭,问答社交模式会走向哪?
- RFBnet论文翻译:感受野块网络对于精确的和快速的目标检测
- 一个开源数据分析平台的搭建方法
- [JPBC] BigInteger 和 Element 的转换
- 宝宝痰湿体质——家长该如何调理
- VS2008向工具箱中添加控件解决 未能实例化 设计时授权
- Jar包阿里云服务器后台运行