tkinter menu
生活随笔
收集整理的這篇文章主要介紹了
tkinter menu
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
tkinter menu python] view plain copy
'''''Tkinter教程之Menu篇'''
'''''1.創建一個簡單的Menu'''
# 添加菜單hello和quit,將hello菜單與hello函數綁定;quit菜單與root.quit綁定
# -*- coding: utf-8 -*-
from tkinter import * root = Tk() def hello(): print('hello menu') menubar = Menu(root)
# 創建主菜單,每個菜單對應的回調函數都是hello
for item in ['Python', 'PHP', 'CPP', 'C', 'Java', 'JavaScript', 'VBScript']: menubar.add_command(label=item, command=hello)
# 將root的menu屬性設置為menubar
root['menu'] = menubar
root.mainloop()
# 這個菜單沒有下拉菜單,僅包含兩個菜單項
[python] view plain copy
'''''2.添加下拉菜單'''
from tkinter import * root = Tk() def hello(): print('hello menu') menubar = Menu(root) filemenu = Menu(menubar, tearoff=0)
for item in ['Python', 'PHP', 'CPP', 'C', 'Java', 'JavaScript', 'VBScript']: filemenu.add_command(label=item, command=hello)
# 將menubar的menu屬性指定為filemenu,即filemenu為menubar的下拉菜單
menubar.add_cascade(label='Language', menu=filemenu)
root['menu'] = menubar
root.mainloop() [python] view plain copy
'''''3.向菜單中添加Checkbutton項'''
# -*- coding: utf-8 -*-
from tkinter import * root = Tk() # 每次打印出各個變量的當前值
def printItem(): print('Python = ', vPython.get()) print('PHP = ', vPHP.get()) print('CPP = ', vCPP.get()) print('C = ', vC.get()) print('Java = ', vJava.get()) print('JavaScript = ', vJavaScript.get()) print('VBScript = ', vVBScript.get()) menubar = Menu(root) vPython = StringVar()
vPHP = StringVar()
vCPP = StringVar()
vC = StringVar()
vJava = StringVar()
vJavaScript = StringVar()
vVBScript = StringVar() filemenu = Menu(menubar, tearoff=0)
for k, v in {'Python': vPython, 'PHP': vPHP, 'CPP': vCPP, 'C': vC, 'Java': vJava, 'JavaScript': vJavaScript, 'VBScript': vVBScript}.items(): # 綁定變量與回調函數 filemenu.add_checkbutton(label=k, command=printItem, variable=v)
# 將menubar的menu屬性指定為filemenu,即filemenu為menubar的下拉菜單
menubar.add_cascade(label='Language', menu=filemenu)
root['menu'] = menubar
root.mainloop()
# 程序運行,使用了Checkbutton,并通過printItem將每個Checkbutton在當前值打印出來。
[python] view plain copy
'''''4.向菜單 中添加Radiobutton項'''
# -*- coding: utf8 -*-
from tkinter import * root = Tk() menubar = Menu(root)
vLang = StringVar() # 每次打印出當前選中的語言
def printItem(): print('vLang = ', vLang.get()) filemenu = Menu(menubar, tearoff=0)
for k in ['Python', 'PHP', 'CPP', 'C', 'Java', 'JavaScript', 'VBScript']: # 綁定變量與回調函數,指定的變量vLang將這幾項劃為一組 filemenu.add_radiobutton(label=k, command=printItem, variable=vLang)
# 將menubar的menu屬性指定為filemenu,即filemenu為menubar的下拉菜單
menubar.add_cascade(label='Language', menu=filemenu)
root['menu'] = menubar
root.mainloop()
# 程序每次打印出當前選中的語言
# 與Checkbutton不同的是,同一個組內只有一個處于選中狀態。
[python] view plain copy
'''''5.向菜單中添加分隔符'''
# -*- coding: utf-8 -*-
from tkinter import * root = Tk()
menubar = Menu(root) # 每次打印出當前選中的語言
def printItem(): print('add_separator') filemenu = Menu(menubar, tearoff=0)
for k in ['Python', 'PHP', 'CPP', 'C', 'Java', 'JavaScript', 'VBScript']: filemenu.add_command(label=k, command=printItem) # 將各個菜單項使用分隔符隔開
filemenu.add_separator()
menubar.add_cascade(label='Language', menu=filemenu)
root['menu'] = menubar
root.mainloop()
# 分隔符將相關的菜單項進行分組,只是UI上的實現,程序上沒有任何改變,它也不執行任何的命令
[python] view plain copy
''''' 6.將以上的例5中的菜單改為右擊彈出菜單'''
# 方法是通過綁定鼠標右鍵,每當點擊時彈出這個菜單,去掉與root的關聯
# -*- coding: utf-8 -*-
from tkinter import * root = Tk()
menubar = Menu(root) def printItem(): print('popup menu') filemenu = Menu(menubar, tearoff=0)
for k in ['Python', 'PHP', 'CPP', 'C', 'Java', 'JavaScript', 'VBScript']: filemenu.add_command(label=k, command=printItem) filemenu.add_separator()
menubar.add_cascade(label='Language', menu=filemenu) # 此時就不要將root的menu設置為menubar了
# root['menu'] = menubar
def popup(event): # 顯示菜單
menubar.post(event.x_root, event.y_root) # 在這里相應鼠標的右鍵事件,右擊時調用popup,此時與菜單綁定的是root,可以設置為其它的控件,在綁定的控件上右擊就可以彈出菜單
root.bind('<Button-3>', popup)
root.mainloop()
# 運行測試一個,可以看到各個菜單 項的功能都是可以使用的,所以彈出菜單與一般的菜單功能是一樣的,只是彈出的方式不同而已。
[python] view plain copy
''''' 7.以下的代碼演示了菜單項的操作方法,包括添加各種菜單項,刪除一個或多個菜單項'''
# -*- coding: utf-8 -*-
from tkinter import * root = Tk()
menubar = Menu(root) def printItem(): print('add_separator') filemenu = Menu(menubar, tearoff=0)
for k in range(5): filemenu.add_command(label=str(k), command=printItem)
menubar.add_cascade(label='Language', menu=filemenu) '''''以下為向菜單中添加項的操作'''
# 在索引1添加一菜單command項
filemenu.insert_command(1, label='1000', command=printItem)
# 在索引2添加一菜單checkbutton項
filemenu.insert_checkbutton(2, label='2000', command=printItem)
# 在索引3添加一菜單radiobutton項
filemenu.insert_radiobutton(3, label='3000', command=printItem)
# 將新添加的菜單項使用分隔符隔開
filemenu.insert_separator(1)
filemenu.insert_separator(5) '''''以下為刪除菜單項的操作'''
# 刪除索引6-9的菜單項
filemenu.delete(6, 9)
# 刪除索引為0的菜單項
filemenu.delete(0) root['menu'] = menubar
root.mainloop()
# 分隔符將相關的菜單項進行分組,只是UI上的實現,程序上沒有任何改變,它也不執行任何的命令
?
posted on 2018-06-07 10:46 秦瑞It行程實錄 閱讀(...) 評論(...) 編輯 收藏轉載于:https://www.cnblogs.com/ruiy/p/9149447.html
總結
以上是生活随笔為你收集整理的tkinter menu的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Linux下全局安装composer方法
- 下一篇: mac java+selenium 实现