問題
有時要在視窗上添加一個菜單欄,一般不會想到用python來實作它,今天小編就給大家帶來用python實作一個視窗的菜單欄,而且,在菜單欄類還可以添加一些功能,一起來看看吧。
方法
第一步:首先需要利用Tkinter建立一個視窗;
import tkinter as tk
window=tk.Tk()
window.title('my window') #視窗标題
window.geometry('500x350+300+200')#視窗大小以及距離x軸與y軸的距離
window.mainloop()#顯示視窗
第二步:建立一個視窗菜單;
num1=tk.Menu(menus)#在menus上面建立一個選項欄num1
menus.add_cascade(label='Menu1',menu=num1)#将num1命名為Menu1
num1.add_command(label='Open',command=cod)#在num1上增加一個Open指令,執行的cod
num1.add_command(label='Exit',command=window.quit)#在num1上增加一個退出指令
num2=tk.Menu(menus)#在menus上面建立一個選項num1
menus.add_cascade(label='Menu2',menu=num2)#将num2命名為Menu1
num2.add_command(label='Task',command=cod)#在num2上增加一個Task指令,執行cod
num2.add_command(label='Exit',command=window.quit)#在num2上增加一個退出指令
window.config(menu=menus)#将window的menu改為我們所定義的menus
第三步:建立執行的指令,當然這裡為了友善,Task與Open指令均執行所定義的cod函數,主要是在Label中顯示I hit menus這個指令,而另外兩個都執行退出window的指令;
l=tk.Label(window,text='',bg='yellow',width=20,font=('華文行楷',10))#定義好我們的label
l.pack()
var=tk.StringVar()
def cod():
l.config(text='I hit menus')
代碼彙總及效果展示
import tkinter as tk
window=tk.Tk()
window.title('my window')
window.geometry('500x350+300+200')#視窗大小以及距離x軸與y軸的距離
l=tk.Label(window,text='',bg='yellow',width=20,font=('華文行楷',10))#定義好我們的label
l.pack()
var=tk.StringVar()
def cod():
l.config(text='I hit menus')#将我們Label中的text改為I hit menus
menus=tk.Menu(window)#在window上建立一個菜單欄menus
num1=tk.Menu(menus)#在menus上面建立一個選項欄num1
menus.add_cascade(label='Menu1',menu=num1)#将num1命名為Menu1
num1.add_command(label='Open',command=cod)#在num1上增加一個Open指令,執行的cod
num1.add_command(label='Exit',command=window.quit)#在num1上增加一個退出指令
num2=tk.Menu(menus)#在menus上面建立一個選項num1
menus.add_cascade(label='Menu2',menu=num2)#将num2命名為Menu1
num2.add_command(label='Task',command=cod)#在num2上增加一個Task指令,執行cod
num2.add_command(label='Exit',command=window.quit)#在num2上增加一個退出指令
window.config(menu=menus)#将window的menu改為我們所定義的menus
window.mainloop()#顯示視窗
效果展示:
![](https://img.laitimes.com/img/_0nNw4CM6IyYiwiM6ICdiwiI0gTMx81dsQWZ4lmZf1GLlpXazVmcvwFciV2dsQXYtJ3bm9CX9s2RkBnVHFmb1clWvB3MaVnRtp1XlBXe0xCMy81dvRWYoNHLwEzX5xCMx8FesU2cfdGLwMzX0xiRGZkRGZ0Xy9GbvNGLpZTY1EmMZVDUSFTU4VFRR9Fd4VGdsYTMfVmepNHLrJXYtJXZ0F2dvwVZnFWbp1zczV2YvJHctM3cv1Ce-cmbw5CO1YDO5YjZ3MzMhFGMiFTNyYzXwMzMxADMwEzLcRDMyIDMy8CXn9Gbi9CXzV2Zh1WavwVbvNmLvR3YxUjLyM3Lc9CX6MHc0RHaiojIsJye.png)