Python 3 – Tkinter列表框
Tkinter是Python的一個(gè)標(biāo)準(zhǔn)GUI庫,包含了很多可以用來構(gòu)建GUI的部件和組件。愛掏網(wǎng) - it200.com其中,列表框就是一個(gè)很有用的組件,它可以方便地顯示列表,并可以交互式地選擇其中的項(xiàng)。愛掏網(wǎng) - it200.com本文將介紹如何在一個(gè)Tkinter窗口中使用列表框。愛掏網(wǎng) - it200.com
在Tkinter中創(chuàng)建一個(gè)列表框很簡(jiǎn)單,只需要使用
“`Listbox“`類即可。愛掏網(wǎng) - it200.com以下是一個(gè)基本的示例代碼:
import tkinter as tk
root = tk.Tk()
lb = tk.Listbox(root)
lb.pack()
root.mainloop()
這個(gè)例子中,我們首先導(dǎo)入Tkinter庫,然后創(chuàng)建一個(gè)窗口對(duì)象
“`root“`。愛掏網(wǎng) - it200.com接著,我們創(chuàng)建了一個(gè)列表框?qū)ο?#8220;`lb“`,并將它添加到了窗口中。愛掏網(wǎng) - it200.com最后,通過“`mainloop“`方法啟動(dòng)了Tkinter的事件循環(huán)。愛掏網(wǎng) - it200.com
運(yùn)行這個(gè)代碼,我們會(huì)在屏幕上看到一個(gè)空的列表框。愛掏網(wǎng) - it200.com雖然這并不是很實(shí)用,但是它展示了如何創(chuàng)建一個(gè)列表框。愛掏網(wǎng) - it200.com
添加和移除項(xiàng)
接下來,我們將添加一些項(xiàng)到列表框中。愛掏網(wǎng) - it200.com我們可以使用
“`insert“`方法來添加一個(gè)項(xiàng),也可以使用“`delete“`方法來移除一個(gè)項(xiàng)。愛掏網(wǎng) - it200.com以下是一個(gè)示例代碼:
import tkinter as tk
root = tk.Tk()
lb = tk.Listbox(root)
lb.pack()
lb.insert(0, "apple")
lb.insert(1, "banana")
lb.insert(2, "cherry")
lb.delete(1)
root.mainloop()
在這個(gè)示例代碼中,我們首先創(chuàng)建了一個(gè)列表框?qū)ο?br /> “`lb“`,然后向它添加了三個(gè)項(xiàng)。愛掏網(wǎng) - it200.com這里我們使用了“`insert“`方法來添加項(xiàng),它的第一個(gè)參數(shù)是要插入的位置,第二個(gè)參數(shù)是要插入的文本。愛掏網(wǎng) - it200.com我們添加了三個(gè)項(xiàng),并將它們分別插入到了位置0、位置1和位置2。愛掏網(wǎng) - it200.com
接著,我們使用了
“`delete“`方法,將位置1的項(xiàng)(即“banana”)移除了。愛掏網(wǎng) - it200.com這樣,我們就只剩下了“apple”和“cherry”兩個(gè)項(xiàng)了。愛掏網(wǎng) - it200.com如果你運(yùn)行這個(gè)代碼,你會(huì)看到這樣的結(jié)果:
apple
cherry
獲取選中的項(xiàng)
當(dāng)使用列表框時(shí),我們可能需要獲取當(dāng)前選擇的項(xiàng)。愛掏網(wǎng) - it200.com可以使用
“`curselection“`方法來獲取選中的項(xiàng)。愛掏網(wǎng) - it200.com這個(gè)方法會(huì)返回一個(gè)元組,其中包含了所有被選中的項(xiàng)的索引。愛掏網(wǎng) - it200.com以下是一個(gè)示例代碼:
import tkinter as tk
root = tk.Tk()
lb = tk.Listbox(root)
lb.pack()
lb.insert(0, "apple")
lb.insert(1, "banana")
lb.insert(2, "cherry")
def print_selection():
selection = lb.curselection()
print(selection)
button = tk.Button(root, text="Get selection", command=print_selection)
button.pack()
root.mainloop()
在這個(gè)示例代碼中,我們創(chuàng)建了一個(gè)按鈕,并將它添加到了窗口中。愛掏網(wǎng) - it200.com當(dāng)用戶點(diǎn)擊這個(gè)按鈕時(shí),我們調(diào)用
“`print_selection“`函數(shù),該函數(shù)會(huì)獲取當(dāng)前選中的項(xiàng),并通過“`print“`函數(shù)輸出到終端中。愛掏網(wǎng) - it200.com
運(yùn)行這個(gè)代碼,你可以看到一個(gè)窗口和一個(gè)按鈕。愛掏網(wǎng) - it200.com當(dāng)你單擊按鈕時(shí),程序會(huì)輸出當(dāng)前選中的項(xiàng)的索引。愛掏網(wǎng) - it200.com如果沒有任何項(xiàng)被選中,該方法會(huì)返回一個(gè)空元組。愛掏網(wǎng) - it200.com
改變選中的項(xiàng)
我們還可以使用
“`selection_set“`方法和“`selection_clear“`方法,來改變選中的項(xiàng)。愛掏網(wǎng) - it200.com以下是一個(gè)示例代碼:
import tkinter as tk
root = tk.Tk()
lb = tk.Listbox(root)
lb.pack()
lb.insert(0, "apple")
lb.insert(1, "banana")
lb.insert(2, "cherry")
def select_apple():
lb.selection_clear(0, tk.END)
lb.selection_set(0)
def select_banana():
lb.selection_clear(0, tk.END)
lb.selection_set(1)
apple_button = tk.Button(root, text="Select apple", command=select_apple)
apple_button.pack()
banana_button = tk.Button(root, text="Select banana", command=select_banana)
banana_button.pack()
root.mainloop()
在這個(gè)示例代碼中,我們創(chuàng)建了兩個(gè)按鈕,分別用來選擇“apple”和“banana”。愛掏網(wǎng) - it200.com當(dāng)用戶點(diǎn)擊按鈕時(shí),我們調(diào)用
“`select_apple“`和“`select_banana“`函數(shù),來改變列表框中的選擇狀態(tài)。愛掏網(wǎng) - it200.com
“`selection_clear“`方法用來清除所有選中的項(xiàng),而“`selection_set“`方法則用來選中指定的項(xiàng)。愛掏網(wǎng) - it200.com這里我們將第一個(gè)按鈕用來選中“apple”,第二個(gè)按鈕用來選中“banana”。愛掏網(wǎng) - it200.com
運(yùn)行這個(gè)代碼,你可以看到一個(gè)窗口和兩個(gè)按鈕。愛掏網(wǎng) - it200.com當(dāng)你單擊按鈕時(shí),程序會(huì)改變列表框中的選擇狀態(tài)。愛掏網(wǎng) - it200.com
獲取和設(shè)置文本
最后,我們還可以使用
“`get“`方法和“`insert“`方法來獲取或設(shè)置列表框中的文本。愛掏網(wǎng) - it200.com“`get“`方法用來獲取指定位置上的文本,而“`insert“`方法則用來在指定位置上插入新的文本。愛掏網(wǎng) - it200.com以下是一個(gè)示例代碼: