Как убрать фигурные скобки из ttk.combobox
Использую такой код для добавления в список столбцов из бд.
cur.execute('SELECT id, name FROM clients')
self.e_client = ttk.Combobox(win, width=17, values=cur.fetchall())
Если в строке столбца больше одного слова(то есть есть пробелы), то ttk.Combobox добавляет фигурные скобки.
Как от них избавиться?
Ответы (1 шт):
Автор решения: insolor
→ Ссылка
Метод fetchall возвращает список кортежей такого вида:
[(1, 'Иванов Иван Иванович'), (2, 'Петров Иван Сергеевич')]
В каждом кортеже набор значений, которые вы получаете с помощью select. Чтобы отображалось как вам нужно, а не как захочет combobox, перед вставкой в него нужно преобразовать эти данные в список строк. Например, можно сформировать список только имен:
e_client = ttk.Combobox(win, width=17, values=[row[1] for row in cur.fetchall()])
Либо сформировать строки в нужном вам виде, например с помощью format:
e_client = ttk.Combobox(win, width=17, values=["{} - {}".format(*row) for row in cur.fetchall()])
