Как создать поле со списком, которое включает флажок для каждого элемента?

Я совершенно не знаком с tkinter и python. Мне было интересно, как создать кнопку, которая будет действовать следующим образом:

  • Нажмите на кнопку, опустив список (так что это combobox)
  • Каждая строка списка имеет флажок.
  • Наконец, если щелкнуть флажок, запустите функцию или (даже лучше), когда combobox больше не будет удаляться, запустите функцию с элементами, проверенными как args.

ОБНОВИТЬ

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

Наконец, я использовал идею Брайана, создав кадр верхнего уровня. Вот что я имею:

2 Solutions collect form web for “Как создать поле со списком, которое включает флажок для каждого элемента?”

Нет виджета, чтобы делать то, что вы хотите. Вам нужно будет создать окно верхнего уровня с кучей контрольных кнопок. Затем вы можете запустить внешний вид с помощью обычной кнопки.

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

Это дает вам OptionMenu с OptionMenu в содержащемся меню. Проверьте, какие предметы вам нравятся, затем щелкните правой кнопкой мыши в окне tkinter, чтобы напечатать значения флажков на консоли.

 from tkinter import * master = Tk() var = StringVar(master) var.set("Check") w = OptionMenu(master, variable = var, value="options:") w.pack() first = BooleanVar() second = BooleanVar() third = BooleanVar() w['menu'].add_checkbutton(label="First", onvalue=True, offvalue=False, variable=first) w['menu'].add_checkbutton(label="Second", onvalue=True, offvalue=False, variable=second) w['menu'].add_checkbutton(label="Third", onvalue=1, offvalue=False, variable=third) master.bind('<Button-3>', lambda x: print("First:", first.get(), " Second:", second.get(), " - Third:", third.get())) mainloop() 

См. Также это .

  • Переменный размер списка флажков в Tkinter?
  • код рисования для перемещения овала
  • Как показать путь к файлу с помощью кнопки «Обзор» в Python / Tkinter
  • Как заставить tkinter работать с установкой Ubuntu по умолчанию Python 2.7?
  • Цвет фона для Tk в Python
  • не может установить цвет фона ttk python os x, используя стили
  • Обновление координат графиков в matplotlib
  • задайте текст записи с помощью кнопки tkinter
  •  
    Interesting Posts for Van-Lav

    Невозможно загрузить видеопотоки с помощью API-интерфейса youtube v3 в python

    Как я могу использовать PCA / SVD в Python для выбора и идентификации функции?

    Django: импортировать пользовательский класс в шаблон html вместо представления?

    Python Sci-Kit Learn: Multilabel Classification ValueError: не удалось преобразовать строку в float:

    Как иметь пользовательский истинный / ложный ввод в python?

    Не удается установить пакет Python

    Экспорт кадра данных Pandas с текстовым столбцом, содержащим текст utf-8 и URL-адреса в Excel

    Как объединить несколько файлов .py в один .exe с Py2Exe

    проблема кодирования в Python, когда urlopen () gbk-страница

    Объединение флеш-неустойчивых, флеш-безопасности и регулярных запросов Python

    Запрос улучшения производительности Python для

    Как реализовать питонический эквивалент хвоста -F?

    DateTimeField получил наивное datetime

    Как я могу видеть сообщения журнала при модульном тестировании в PyCharm?

    Переменные класса: «список классов» vs «class boolean»

    Python - лучший язык программирования в мире.