【tkinter模塊06】listbox 列表框

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()

 

發佈了79 篇原創文章 · 獲贊 64 · 訪問量 8193
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章