菜單欄
代碼如下
#!/usr/bin/env python
# -*- coding: utf-8 -*-
import tkinter as tk
from tkinter import Menu # 導入菜單類
win = tk.Tk()
win.title("Python GUI") # 添加標題
# 創(chuàng)建菜單欄功能
menuBar = Menu(win)
win.config(menu=menuBar)
# 創(chuàng)建一個名為File的菜單項
fileMenu = Menu(menuBar)
menuBar.add_cascade(label="File", menu=fileMenu)
# 在菜單項File下面添加一個名為New的選項
fileMenu.add_command(label="New")
# 在菜單項下面添加一個名為Exit的選項
fileMenu.add_command(label="Exit")
win.mainloop() # 當調(diào)用mainloop()時,窗口才會顯示出來
代碼執(zhí)行結果如圖
2016-05-08_233046.png
增加功能
- 我們可以在兩個菜單項之間添加一個橫線,在它們兩個菜單項的代碼中間添加如下代碼即可達到效果
# 在兩個菜單選項中間添加一條橫線
fileMenu.add_separator()
代碼執(zhí)行結果如圖
2.png
- 接下來我們需要將菜單項最上面的一條虛線去掉逗鸣,可以修改代碼第16行來實現(xiàn)其效果
# 將第16行代碼修改為如下, tearoff=0 代表將菜單項最上面的一條虛線去掉,默認是存在的
fileMenu = Menu(menuBar, tearoff=0)
代碼執(zhí)行結果如圖
2016-05-08_234653.png
- 接下來我們需要在菜單欄中創(chuàng)建第二個菜單選項Help透葛,并添加子菜單about卿樱,在上面代碼的倒數(shù)第二行加入下面代碼
# 在菜單欄中創(chuàng)建一個名為Help的菜單項helpMenu = Menu(menuBar, tearoff=0)
menuBar.add_cascade(label="Help", menu=helpMenu)
# 在菜單欄Help下添加一個名為About的選項
helpMenu.add_command(label="About")
代碼執(zhí)行結果如圖
2016-05-09_090331.png
- 目前有了這些功能繁调,現(xiàn)在我們需要點擊菜單選項File下面的Exit選項,將窗口關閉掉门岔,代碼需要做如下修改
需要在 win.title("Python GUI") 下面添加一個關閉窗口的函數(shù)烤送,代碼如下
def _quit():
"""結束主事件循環(huán)"""
win.quit() # 關閉窗口
win.destroy() # 將所有的窗口小部件進行銷毀,應該有內(nèi)存回收的意思
exit()
當我們想要我們的菜單項來做一些事情,我們必須將它們綁定到一個函數(shù),然后需要為 fileMenu.add_command(label="Exit") 添加點擊時候觸發(fā)的動作妻往,為其綁定到個函數(shù) 代碼如下
fileMenu.add_command(label="Exit", command=_quit)
完整代碼:
#!/usr/bin/env python
# -*- coding: utf-8 -*-
import tkinter as tk
from tkinter import Menu # 導入菜單類
win = tk.Tk()
win.title("Python GUI") # 添加標題
def _quit():
"""結束主事件循環(huán)"""
win.quit() # 關閉窗口
win.destroy() # 將所有的窗口小部件進行銷毀试和,應該有內(nèi)存回收的意思
exit()
# 創(chuàng)建菜單欄功能
menuBar = Menu(win)
win.config(menu=menuBar)
# 創(chuàng)建一個名為File的菜單項
fileMenu = Menu(menuBar, tearoff=0)
menuBar.add_cascade(label="File", menu=fileMenu)
# 在菜單項File下面添加一個名為New的選項
fileMenu.add_command(label="New")
# 在兩個菜單選項中間添加一條橫線
fileMenu.add_separator()
# 在菜單項下面添加一個名為Exit的選項
fileMenu.add_command(label="Exit", command=_quit)
# 在菜單欄中創(chuàng)建一個名為Help的菜單項
helpMenu = Menu(menuBar, tearoff=0)
menuBar.add_cascade(label="Help", menu=helpMenu)
# 在菜單欄Help下添加一個名為About的選項
helpMenu.add_command(label="About")
win.mainloop() # 進入主事件循環(huán)阅悍,當調(diào)用mainloop()時,窗口才會顯示出來