import?tkinter
win=tkinter.Tk()
win.title('第一個(gè)窗口')
win.geometry()
'''
Listbox?列表框控件:可以包含一個(gè)或者多個(gè)文本框
作業(yè):在listbox控件的小窗口顯示一個(gè)字符串
'''
#一:【支持鼠標(biāo)移動(dòng)選中位置】使用selectmode=tkinter.BROWSE箕慧,創(chuàng)建一個(gè)listbox,添加幾個(gè)元素
'''
lb=tkinter.Listbox(win,selectmode=tkinter.BROWSE)
lb.pack()
for?item?in?['good','nice','beautiful']:
#1:添加
#按順序添加(向后添加)
????lb.insert(tkinter.END,item)?
#在開(kāi)始添加(往前添加)
lb.insert(tkinter.ACTIVE,'cool')?
#將列表當(dāng)成一個(gè)元素添加
#lb.insert(tkinter.END,['cool','sunk'])?
'''
#2:刪除【索引從0開(kāi)始數(shù)】(刪除開(kāi)始索引到結(jié)束索引的所有元素)缤谎,參數(shù)1為開(kāi)始索引荤胁,參數(shù)2為結(jié)束索引,如果不指定參數(shù)2,只刪除第一個(gè)索引的內(nèi)容
#lb.delete(1)
#3:選中【索引從0開(kāi)始數(shù)】(選中開(kāi)始索引到結(jié)束索引的所有元素),參數(shù)1為開(kāi)始索引匕累,參數(shù)2為結(jié)束索引,如果不指定參數(shù)2默伍,只選中第一個(gè)索引的內(nèi)容
#lb.select_set(2)
#lb.select_set(2,4)
#4:取消選中【索引從0開(kāi)始數(shù)】(取消選中開(kāi)始索引到結(jié)束索引的所有元素)哩罪,參數(shù)1為開(kāi)始索引授霸,參數(shù)2為結(jié)束索引,如果不指定參數(shù)2际插,只取消選中第一個(gè)索引的內(nèi)容
#lb.select_clear(2)
#5:獲取到列表中的元素個(gè)數(shù)
#print(lb.size())
#6:從列表中取值【索引從0開(kāi)始數(shù)】(獲取選中開(kāi)始索引到結(jié)束索引的所有元素的值(tuple)),參數(shù)1為開(kāi)始索引显设,參數(shù)2為結(jié)束索引框弛,如果不指定參數(shù)2,只獲取第一個(gè)索引的內(nèi)容
#print(lb.get(1,2))
#7:返回當(dāng)前選中的索引項(xiàng)(得到索引)捕捂,不是的到內(nèi)容
#print(lb.curselection())
#8:判斷?一個(gè)選項(xiàng)是否被選中瑟枫,返回布爾類型?用索引表示?
#print(lb.select_includes(1))
#9:綁定變量
#lbv=tkinter.StringVar()
#???9.1?打印當(dāng)前列表中的所有選項(xiàng)(tuple)
#print(lbv.get())
#???9.2?設(shè)置選項(xiàng)(tuple)
#lbv.set(('1','2'))
#10:綁定事件(需要一個(gè)參數(shù),但是不要傳)
'''
def?myPrint(event):
????print(lb.get(lb.curselection()))
lb.bind('<Double-Button-1>',myPrint)
#11:滾動(dòng)條
sc=tkinter.Scrollbar(win)
sc.pack(side=tkinter.RIGHT,fill=tkinter.Y)
lb.pack(side=tkinter.LEFT,fill=tkinter.BOTH)
#關(guān)聯(lián)
lb.configure(yscrollcommand=sc.set)??(config方法也可以)
sc['command']=lb.yview?#額外給屬性賦值指攒,相當(dāng)于?sc.configure(command=text.yview)
'''
'''#二:【不支持鼠標(biāo)移動(dòng)選中位置慷妙,支持鼠標(biāo)按下后選中位置】使用selectmode=tkinter.SINGLE,創(chuàng)建一個(gè)listbox允悦,添加幾個(gè)元素膝擂,與(一)相似
lb=tkinter.Listbox(win,selectmode=tkinter.SINGLE,listvariable=lbv)
lb.pack()
for?item?in?['good','nice','beautiful']:
????lb.insert(tkinter.END,item)
'''
#三:【在一的功能上,可以使listbox支持shift和control(實(shí)現(xiàn)連選與多選)】使用selectmode=tkinter.EXTENDED
'''
lb=tkinter.Listbox(win,selectmode=tkinter.EXTENDED)
for?item?in?['good','nice','beautiful','good1','nice1','beautiful1','good2','nice2','beautiful2','good3','nice3','beautiful3']:
????lb.insert(tkinter.END,item)
sc=tkinter.Scrollbar(win)
sc.pack(side=tkinter.RIGHT,fill=tkinter.Y)
lb.configure(yscrollcommand=sc.set)
lb.pack(side=tkinter.LEFT,fill=tkinter.BOTH)
sc['command']=lb.yview
'''
#四:【在二的功能上,支持多選】使用selectmode=tkinter.MULTIPLE
lb=tkinter.Listbox(win,selectmode=tkinter.MULTIPLE)
for?item?in?['good','nice','beautiful','good1','nice1','beautiful1','good2','nice2','beautiful2','good3','nice3','beautiful3']:
????lb.insert(tkinter.END,item)
lb.pack()
win.mainloop()