Tkinter教程之OptionMenu篇

來源:互聯網
上載者:User
'''Tkinter教程之OptionMenu篇'''
#OptionMenu為可選菜單,與Combox功能類似。
'''1.建立OptionMenu'''
# -*- coding: cp936 -*-
from Tkinter import *
root = Tk()
v = StringVar(root)
v.set('Python')
om = OptionMenu(root,v,'Python','PHP','CPP','C','Java','JavaScript','VBScript')
om.pack()

root.mainloop()
#顯示的文本自動斷行,上下行分別使用了靠左對齊,靠右對齊和置中對齊
# -*- coding: cp936 -*-
from Tkinter import *
root = Tk()
v = StringVar(root)
#建立一個OptionMenu控制項
om = OptionMenu(root,
                v,
                'Python',
                'PHP',
                'CPP',
                'C',
                'Java',
                'JavaScript',
                'VBScript'
                )
om.pack()

root.mainloop()
#OptionMenu的建立需要兩個必要的參數,與當前值綁定的變數,通常為一StringVar類型;另一
#個是提供可選的內容列表,由OptionMenu的變參數指定。

'''2.設定OptionMenu的顯示值'''
#當OptionMenu與變數綁定後,直接使用變數賦值的方法即可改變當前的值
# -*- coding: cp936 -*-
from Tkinter import *
root = Tk()
v = StringVar(root)
v.set('VBScript')
#建立一個OptionMenu控制項
om = OptionMenu(root,
                v,
                'Python',
                'PHP',
                'CPP',
                'C',
                'Java',
                'JavaScript',
                'VBScript'
                )
om.pack()
print v.get()

root.mainloop()
#運行程式,OptionMenu預設值為"VBScript",列印出的數值也為"VBScript"
#如果設定的值不包含在當前的列表中,會是什麼結果?如下的代碼使用"Tkinter"來測試
# -*- coding: cp936 -*-
from Tkinter import *
root = Tk()
v = StringVar(root)
v.set('Tkinter')
#建立一個OptionMenu控制項
om = OptionMenu(root,
                v,
                'Python',
                'PHP',
                'CPP',
                'C',
                'Java',
                'JavaScript',
                'VBScript'
                )
om.pack()
print v.get()

root.mainloop()
#程式依舊是預設值改變為Tkinter,列印結果也變為Tkinter,但Tkinter不會添加到OptionMenu的列表中,也就是說,當選擇其它的選項時,Tkinter的值會丟失。
'''3.列印OptionMenu的值'''
# -*- coding: cp936 -*-
from Tkinter import *
root = Tk()
v = StringVar(root)
v.set('Tkinter')
def printOption(event):
    print v.get()
#建立一個OptionMenu控制項
om = OptionMenu(root,
                v,
                'Python',
                'PHP',
                'CPP',
                'C',
                'Java',
                'JavaScript',
                'VBScript'
                )
om.bind('<Button-1>',printOption)
om.pack()

root.mainloop()
#每次點擊OptionMenu程式列印出上次選中的項值
'''4.使用list作為OptionMenu的選項'''
# -*- coding: cp936 -*-
from Tkinter import *
root = Tk()
Lang = ['Python','PHP','CPP','C','Java','JavaScript','VBScript']
v = StringVar(root)
v.set('Tkinter')
def printOption(event):
    print v.get()
#建立一個OptionMenu控制項,使用了apply函數
om = apply(OptionMenu,(root,v) + tuple(Lang))
om.bind('<Button-1>',printOption)
om.pack()

root.mainloop()

#author:     jcodeer
#blog:    jcodeer.cublog.cn
#email:    jcodeer@126.com

 

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.