Tkinter - показывать только заполненные значения массива в OptionMenu

У меня есть следующий код:

self.array_lt = ['foo', 'bar', '', 'moo']
var = StringVar()
self.menult = OptionMenu(randomwindow, var, *self.array_lt)
self.menult.config(width=30)
self.menult.grid(row=0, column=0, padx=(5,5), pady=(5,5))

Это показывает мне OptionMenu с четырьмя значениями, foo, bar, (the empty space) а также moo,

Как я могу показать OptionMenu не показывая пустое значение массива? Другими словами, я хочу показать только foo, bar а также mooна OptionMenu и игнорировать пустое пространство.

array_ly Это просто пример, я хотел бы иметь что-то общее, чтобы всегда игнорировать пробелы.

Заранее спасибо.

1 ответ

Решение

Ты можешь использовать filter с None в качестве функции фильтра для фильтрации значений, которые будут False когда интерпретируется как логическое:

>>> filter(None, ["1", 0, " ", "", None, True, False, "False"])
['1', ' ', True, 'False']

Используйте это, когда вы передаете список OptionMenu

self.menult = OptionMenu(randomwindow, var, *filter(None, self.array_lt))
Другие вопросы по тегам