Python 3 – Tkinter列表框
Tkinter是Python的一個標準GUI庫,包含了很多可以用來構建GUI的部件和組件。愛掏網 - it200.com其中,列表框就是一個很有用的組件,它可以方便地顯示列表,并可以交互式地選擇其中的項。愛掏網 - it200.com本文將介紹如何在一個Tkinter窗口中使用列表框。愛掏網 - it200.com
在Tkinter中創建一個列表框很簡單,只需要使用
“`Listbox“`類即可。愛掏網 - it200.com以下是一個基本的示例代碼:
import tkinter as tk
root = tk.Tk()
lb = tk.Listbox(root)
lb.pack()
root.mainloop()
這個例子中,我們首先導入Tkinter庫,然后創建一個窗口對象
“`root“`。愛掏網 - it200.com接著,我們創建了一個列表框對象“`lb“`,并將它添加到了窗口中。愛掏網 - it200.com最后,通過“`mainloop“`方法啟動了Tkinter的事件循環。愛掏網 - it200.com
運行這個代碼,我們會在屏幕上看到一個空的列表框。愛掏網 - it200.com雖然這并不是很實用,但是它展示了如何創建一個列表框。愛掏網 - it200.com
添加和移除項
接下來,我們將添加一些項到列表框中。愛掏網 - it200.com我們可以使用
“`insert“`方法來添加一個項,也可以使用“`delete“`方法來移除一個項。愛掏網 - it200.com以下是一個示例代碼:
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()
在這個示例代碼中,我們首先創建了一個列表框對象
“`lb“`,然后向它添加了三個項。愛掏網 - it200.com這里我們使用了“`insert“`方法來添加項,它的第一個參數是要插入的位置,第二個參數是要插入的文本。愛掏網 - it200.com我們添加了三個項,并將它們分別插入到了位置0、位置1和位置2。愛掏網 - it200.com
接著,我們使用了
“`delete“`方法,將位置1的項(即“banana”)移除了。愛掏網 - it200.com這樣,我們就只剩下了“apple”和“cherry”兩個項了。愛掏網 - it200.com如果你運行這個代碼,你會看到這樣的結果:
apple
cherry
獲取選中的項
當使用列表框時,我們可能需要獲取當前選擇的項。愛掏網 - it200.com可以使用
“`curselection“`方法來獲取選中的項。愛掏網 - it200.com這個方法會返回一個元組,其中包含了所有被選中的項的索引。愛掏網 - it200.com以下是一個示例代碼:
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()
在這個示例代碼中,我們創建了一個按鈕,并將它添加到了窗口中。愛掏網 - it200.com當用戶點擊這個按鈕時,我們調用
“`print_selection“`函數,該函數會獲取當前選中的項,并通過“`print“`函數輸出到終端中。愛掏網 - it200.com
運行這個代碼,你可以看到一個窗口和一個按鈕。愛掏網 - it200.com當你單擊按鈕時,程序會輸出當前選中的項的索引。愛掏網 - it200.com如果沒有任何項被選中,該方法會返回一個空元組。愛掏網 - it200.com
改變選中的項
我們還可以使用
“`selection_set“`方法和“`selection_clear“`方法,來改變選中的項。愛掏網 - it200.com以下是一個示例代碼:
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()
在這個示例代碼中,我們創建了兩個按鈕,分別用來選擇“apple”和“banana”。愛掏網 - it200.com當用戶點擊按鈕時,我們調用
“`select_apple“`和“`select_banana“`函數,來改變列表框中的選擇狀態。愛掏網 - it200.com
“`selection_clear“`方法用來清除所有選中的項,而“`selection_set“`方法則用來選中指定的項。愛掏網 - it200.com這里我們將第一個按鈕用來選中“apple”,第二個按鈕用來選中“banana”。愛掏網 - it200.com
運行這個代碼,你可以看到一個窗口和兩個按鈕。愛掏網 - it200.com當你單擊按鈕時,程序會改變列表框中的選擇狀態。愛掏網 - it200.com
獲取和設置文本
最后,我們還可以使用
“`get“`方法和“`insert“`方法來獲取或設置列表框中的文本。愛掏網 - it200.com“`get“`方法用來獲取指定位置上的文本,而“`insert“`方法則用來在指定位置上插入新的文本。愛掏網 - it200.com以下是一個示例代碼: