天天看點

tkinter listbox執行個體

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()
           
tkinter listbox執行個體