Python 3 – Tkinter列表框

Python 3 – Tkinter列表框

Tkinter是Python的一个标准GUI库,包含了很多可以用来构建GUI的部件和组件。其中,列表框就是一个很有用的组件,它可以方便地显示列表,并可以交互式地选择其中的项。本文将介绍如何在一个Tkinter窗口中使用列表框。

创建列表框

在Tkinter中创建一个列表框很简单,只需要使用
“`Listbox“`类即可。以下是一个基本的示例代码:

import tkinter as tk

root = tk.Tk()

lb = tk.Listbox(root)
lb.pack()

root.mainloop()

这个例子中,我们首先导入Tkinter库,然后创建一个窗口对象
“`root“`。接着,我们创建了一个列表框对象“`lb“`,并将它添加到了窗口中。最后,通过“`mainloop“`方法启动了Tkinter的事件循环。

运行这个代码,我们会在屏幕上看到一个空的列表框。虽然这并不是很实用,但是它展示了如何创建一个列表框。

添加和移除项

接下来,我们将添加一些项到列表框中。我们可以使用
“`insert“`方法来添加一个项,也可以使用“`delete“`方法来移除一个项。以下是一个示例代码:

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“`,然后向它添加了三个项。这里我们使用了“`insert“`方法来添加项,它的第一个参数是要插入的位置,第二个参数是要插入的文本。我们添加了三个项,并将它们分别插入到了位置0、位置1和位置2。

接着,我们使用了
“`delete“`方法,将位置1的项(即“banana”)移除了。这样,我们就只剩下了“apple”和“cherry”两个项了。如果你运行这个代码,你会看到这样的结果:

apple
cherry

获取选中的项

当使用列表框时,我们可能需要获取当前选择的项。可以使用
“`curselection“`方法来获取选中的项。这个方法会返回一个元组,其中包含了所有被选中的项的索引。以下是一个示例代码:

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

在这个示例代码中,我们创建了一个按钮,并将它添加到了窗口中。当用户点击这个按钮时,我们调用
“`print_selection“`函数,该函数会获取当前选中的项,并通过“`print“`函数输出到终端中。

运行这个代码,你可以看到一个窗口和一个按钮。当你单击按钮时,程序会输出当前选中的项的索引。如果没有任何项被选中,该方法会返回一个空元组。

改变选中的项

我们还可以使用
“`selection_set“`方法和“`selection_clear“`方法,来改变选中的项。以下是一个示例代码:

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”。当用户点击按钮时,我们调用
“`select_apple“`和“`select_banana“`函数,来改变列表框中的选择状态。

“`selection_clear“`方法用来清除所有选中的项,而“`selection_set“`方法则用来选中指定的项。这里我们将第一个按钮用来选中“apple”,第二个按钮用来选中“banana”。

运行这个代码,你可以看到一个窗口和两个按钮。当你单击按钮时,程序会改变列表框中的选择状态。

获取和设置文本

最后,我们还可以使用
“`get“`方法和“`insert“`方法来获取或设置列表框中的文本。“`get“`方法用来获取指定位置上的文本,而“`insert“`方法则用来在指定位置上插入新的文本。以下是一个示例代码:

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 get_selection():
    selection = lb.curselection()
    if len(selection) > 0:
        index = selection[0]
        text = lb.get(index)
        print(text)

def set_selection():
    lb.delete(0)
    lb.insert(0, "orange")
    lb.insert(1, "pear")

get_button = tk.Button(root, text="Get selection", command=get_selection)
get_button.pack()

set_button = tk.Button(root, text="Set selection", command=set_selection)
set_button.pack()

root.mainloop()

在这个示例代码中,我们创建了两个按钮,分别用来获取当前选中的项和改变列表框中的文本。当用户单击这两个按钮时,我们调用
“`get_selection“`和“`set_selection“`函数。

“`get_selection“`函数首先获取当前选中的项,并获取该项上的文本。如果有选中的项,程序会将该文本输出到终端中。

“`set_selection“`函数用来改变列表框中的文本。这里我们将“apple”、“banana”和“cherry”三个项全部移除,并用“orange”和“pear”两个项来替代它们。

运行这个代码,你可以看到一个窗口和两个按钮。当你单击这两个按钮时,程序会获取或改变列表框中的文本。

结论

在本文中,我们介绍了如何在Tkinter中使用列表框。我们学习了如何创建一个列表框、添加和移除项、获取选中的项、改变选中的项,以及获取和设置文本。这些技巧对于在Python中构建GUI应用程序时都是很有用的。

Camera课程

Python教程

Java教程

Web教程

数据库教程

图形图像教程

办公软件教程

Linux教程

计算机教程

大数据教程

开发工具教程