Этот виджет представляет собой комбинацию виджета 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".
Если виджет находится в состоянии disabled, никакие действия пользователя не изменят его содержимое.
Если виджет находится в состоянии !disabled, а также в состоянии readonly, пользователь может изменить содержимое с помощью выпадающего меню, но не может редактировать содержимое напрямую.