При помощи виджета Listbox вы можете добавлять в приложение список элементов, предлагаемых пользователю для выбора. Для создания объекта listbox используется конструктор Listbox(), которому в качестве аргументов указываются имя родительского контейнера (например, окна или фрейма) и возможные опции, самые популярные из которых представлены вместе с кратким описанием в таблице ниже.

Опция

Описание

bd

Ширина рамки в пикселах (значение по умолчанию: 2)

bg

Цвет фона

fg

Цвет переднего плана

font

Шрифт для текста

height

Количество строк в списке (значение по умолчанию: 10)

selectbackground

Цвет фона выделенного текста

selectmode

Режим выбора (SINGLE — одиночный по умолчанию или MULTIPLE — множественный)

width

Ширина поля ввода списка в символах (значение по умолчанию: 20)

yscrollcommand

Привязка к полосе прокрутки

В модуле tkinter полоса прокрутки организуется при помощи отдельного виджета scrollbar, который необходимо привязывать к виджетам Listbox, Text, Canvas и Entry.

from tkinter import *
import tkinter.messagebox as box
window = Tk() # Конструктор для создания объекта окна
window.title('Пример со списком')
frame = Frame(window)
listbox = Listbox(frame, selectmode = MULTIPLE)
listbox.insert(1, 'Первый')
listbox.insert(2, 'Второй')
listbox.insert(3, 'Третий')
def dialog():
    list = [listbox.get(i) for i in listbox.curselection()]
    box.showinfo( 'Выбор из списка', 'Ваш выбор: ' + \
     ', '.join(list))
btn = Button(frame, text = 'Сделать выбор', command = dialog)
btn.pack(side = RIGHT, padx = 5)
listbox.pack(side = LEFT)
frame.pack(padx = 30, pady = 30)
window.mainloop()

Если дополнительная опция selectmode (режим выбора) установлена в значение MULTIPLE (множественный выбор), то метод curselection() возвращает кортеж из порядковых номеров выбранных элементов.