Listbox
height 清單顯示長度
listvariable 清單項目(新版本支援)
selectmode 選擇模式,分為單選(browse) 多選(extended)
.curselection() 傳回選中的項目
.see(index) 檢查該index的項目是否有效
.itemconfigure(index,**kw) 設定目标項的屬性,可用屬性為
background, bg, foreground, fg, selectbackground, selectforeground
.selection_set(index) 設定選擇的項目
<<ListboxSelect>> 虛拟事件,當選擇項變化時觸發
from tkinter import *
# from tkinter import ttk
def show_msg(*args):
indexs = listbox1.curselection()
index = int(indexs[0])
listbox2.see(index)
listbox2.select_set(index)
root = Tk()
root.title("listbox練習")
#建立清單顯示内容
names = ("梅長蘇","譽王","飛流","夏冬","霓凰郡主","蒙摯","蕭景睿","謝玉")
players = ("胡歌","黃維德","吳磊","張齡心","劉濤","陳龍","程皓楓","劉奕君") # 劉奕君
list1 = StringVar(value=names)
list2 = StringVar(value=players)
#建立兩個Listbox,分别設定為單選、多選類型
listbox1 = Listbox(root,height=len(names),listvariable=list1,selectmode="browse")
listbox2 = Listbox(root,height=len(players),listvariable=list2,selectmode="extended")
listbox1.grid(row=1,column=1,padx=(10,5),pady=10)
listbox2.grid(row=1,column=2,padx=(5,10),pady=10)
listbox1.select_set(4)
# listbox2.select_set(1,5)
#設定第二個表格的項目顔色等
for i in range(len(players)):
listbox2.itemconfig(i,fg="blue")
if not i%2:
listbox2.itemconfig(i,bg="#f0f0ff")
#為第一個Listbox設定綁定事件
listbox1.bind("<<ListboxSelect>>",show_msg)
root.mainloop()
