import tkinter
# 創建主窗口
win = tkinter.Tk()
# 設置標題
win.title('敲你嗎')
# 設置大小和位置,前兩個x大小 後兩個+位置
win.geometry('400x400+500+200')
'''
列表框控件:可以包含一個或者多個文本框
作用:在listbox控件的小窗口顯示一個字符串
'''
lb = tkinter.Listbox(win,selectmode=tkinter.BROWSE)
lb.pack()
for i in ['a','b','c','d','e','f','g','h','i','j','q']:
# 按順序在末尾添加
lb.insert(tkinter.END,i)
# 在開頭添加
# lb.insert(tkinter.ACTIVE,'hah')
# 刪除 刪除下標爲1的
# lb.delete(1)
# 刪除下標1到3的
# lb.delete(1,3)
# 選中
# lb.select_set(1)
# 選中下標1,3
lb.select_set(1,3)
# 取消選中
# lb.select_clear(1,2)
lb.select_clear(2)
# 獲取到列表中的元素的個數
print(lb.size())
# 取值
print(lb.get(1,3))
# 返回當前選中的索引項(下標)
print(lb.curselection())
# 判斷一個選項是否被選中
print(lb.selection_includes(1))
# 進入消息循環
win.mainloop()
import tkinter
# 創建主窗口
win = tkinter.Tk()
# 設置標題
win.title('敲你嗎')
# 設置大小和位置,前兩個x大小 後兩個+位置
win.geometry('400x400+500+200')
lbv = tkinter.StringVar()
# 不支持鼠標按下後滑動選擇
lb = tkinter.Listbox(win, selectmode=tkinter.SINGLE, listvariable=lbv)
lb.pack()
for i in ['a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j', 'q']:
# 按順序在末尾添加
lb.insert(tkinter.END, i)
# 打印當前列表中的選項
print(lbv.get())
# 設置選項
# lbv.set(('1', '2', '3'))
# 綁定事件 鼠標左鍵點擊兩下
def myPrint(event):
print('返回下標',lb.curselection())
print('返回選項',lb.get(lb.curselection()))
lb.bind('<Double-Button-1>', myPrint)
# 進入消息循環
win.mainloop()
import tkinter
# 創建主窗口
win = tkinter.Tk()
# 設置標題
win.title('敲你嗎')
# 設置大小和位置,前兩個x大小 後兩個+位置
# win.geometry('400x400+500+200')
# EXTENDED支持shift和ctrl
lb = tkinter.Listbox(win, selectmode=tkinter.EXTENDED)
for i in ['a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j', 'q', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j', 'q','b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j', 'q']:
# 按順序在末尾添加
lb.insert(tkinter.END, i)
scroll = tkinter.Scrollbar(win)
scroll.pack(side=tkinter.RIGHT,fill=tkinter.Y)
lb.configure(yscrollcommand=scroll.set)
lb.pack(side=tkinter.LEFT,fill=tkinter.BOTH)
# 額外給屬性賦值
scroll['command'] = lb.yview
# 進入消息循環
win.mainloop()
import tkinter
# 創建主窗口
win = tkinter.Tk()
# 設置標題
win.title('敲你嗎')
# 設置大小和位置,前兩個x大小 後兩個+位置
win.geometry('400x400+500+200')
# MULTIPLE 支持多選
lb = tkinter.Listbox(win, selectmode=tkinter.MULTIPLE)
lb.pack()
for i in ['a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j', 'q']:
# 按順序在末尾添加
lb.insert(tkinter.END, i)
# 進入消息循環
win.mainloop()