Как убрать фигурные скобки из 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()])
→ Ссылка