Главная


31. ttk.Combobox

Этот виджет представляет собой комбинацию виджета Entry и выпадающего меню. В вашем приложении вы увидите обычную область ввода текста со стрелкой, направленной вниз. Когда пользователь нажимает на стрелку, появляется выпадающее меню. Если пользователь кликает по одному из них, то этот выбор заменяет текущее содержимое поля ввода. Однако пользователь все еще может набирать текст непосредственно в поле ввода (если оно имеет фокус) или редактировать текущий текст.

Чтобы создать виджет ttk.Combobox как дочерний виджет данного виджета parent:

w = ttk.Combobox(parent, option=value, ...)

Опции:

Таблица 39. Опции ttk.Combobox

class_ Имя класса виджета. Оно может быть указано при создании виджета, но не может быть изменено позже. Для объяснения классов виджетов смотрите разделе 27, "Стандартизация внешнего вида".
cursor Курсор, который будет появляться при наведении мыши на область флажка; см. раздел Раздел 5.8, "Курсоры".
exportselection По умолчанию, если вы выделяете текст в поле Entry, он автоматически экспортируется в буфер обмена. Чтобы избежать этого экспорта, используйте exportselection=0.
height Используйте эту опцию, чтобы указать максимальное количество строк, которые будут отображаться в выпадающем меню; по умолчанию оно равно 20. Если значений (values) больше, чем это число, выпадающее меню будет автоматически включать вертикальную полосу прокрутки.
justify Эта опция определяет, как будет располагаться текст в области ввода, если он не полностью заполняет область. Значения могут быть tk.LEFT для выравнивания влево; tk.CENTER для выравнивания по центру; или tk.RIGHT для выравнивания вправо.
postcommand Вы можете использовать эту опцию, чтобы указать функцию обратного вызова, которая будет вызвана, когда пользователь нажмет на стрелку вниз. Этот обратный вызов может изменить опцию values; если это так, изменения появятся в выпадающем меню.
style Стиль, который будет использоваться при отображении этой кнопки; смотрите Раздел 49, "Использование и настройка стилей ttk".
takefocus По умолчанию ttk.Combobox будет включен в обход фокуса; см. Раздел 53, "Фокус: маршрутизация ввода с клавиатуры". Чтобы удалить виджет из обхода фокуса, используйте takefocus=False.
textvariable Переменная, управляющая текстом, который отображается в области ввода; см. раздел Раздел 52, "Управляющие переменные: значения, скрывающиеся за виджетами".
validate Вы можете использовать эту опцию для запроса динамической проверки текстового содержимого виджета. Смотрите Раздел 10.2, "Добавление валидации в виджет Entry".
validatecommand Вы можете использовать эту опцию для указания функции обратного вызова, которая динамически проверяет текстовое содержимое виджета. Смотрите Раздел 10.2, "Добавление валидации в виджет Entry".
values Варианты, которые будут отображаться в выпадающем меню, в виде последовательности строк.
width Этот параметр задает ширину области ввода в виде количества символов. Фактическая ширина будет равна этому числу, умноженному на среднюю ширину символа в используемом шрифте. Значение по умолчанию равно 20.
xscrollcommand Если виджет имеет связанную горизонтальную полосу прокрутки, установите этот параметр в метод .set этой полосы прокрутки.

Методы ttk.Combobox включают все методы, описанные в разделе 46, "Методы, общие для всех виджетов ttk", плюс все методы виджета Tkinter, описанные в разделе 10, "Виджет Entry", плюс:

.current([index]).

Чтобы выбрать один из элементов опции values, передайте в качестве аргумента этому методу индекс этого элемента. Если аргумент не указан, то возвращаемым значением будет индекс текущего текста записи в списке values, или -1, если текущего текста записи нет в списке values.

.set(value)

Устанавливает текущий текст в виджете на value.

Состояния виджета ttk.Combobox влияют на его работу. Для опроса или изменения состояний см. методы .instate() и .state() в разделе 46, "Методы, общие для всех виджетов ttk".


>> ttk.Entry