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))