Как вставить информацию из базы данных в выпадающий список в tkinter?
Я новичок, не могу разобраться в коде. Суть следующая, я хочу сделать выпадающее меню в окне tkinter, при этом данные для пункта меню я беру из базы данных main.db из таблицы orgs. Таблица orgs содержит два столбца "Название организации" и "ИНН организации" и две записи: ООО 123, 1234567890 ООО 321, 0987654321
con = sqlite3.connect('main.db')
cur = con.cursor()
cur.execute("SELECT * FROM orgs")
rows = cur.fetchall()
for row in rows:
print(row[0])
Вывод в терминале даёт правильный, и тут я уже не знаю что сделать. Вывод следующий(он то мне и нужен в выпадающем меню, но пока получается только вывести в терминале):
ООО 123
ООО 321
Далее я хочу вставить эти данные в выпадающее меню, но не получается.
variable = StringVar(root)
variable.set(row[0]) # устанавливаю значение по умолчанию, выдаёт почему-то вторую строку "ООО 321" без ИНН, а надо первую строку "ООО 123" без ИНН.
ispi = OptionMenu(framemain, variable, *row)
На этом этапе, при вызове выпадающего меню он мне выдаёт меню из двух строк "ООО 321" и "0987654321". Вопрос: Как взять информацию из первого столбца таблицы базы данных и поместить её в выпадающий список?
Ответы (1 шт):
Можно сделать ttk.Combobox: Он лучше как выпадающий список. И мороки с ним нет
from tkinter import ttk
import tkinter as tk
### Запросы sql и тд
root = tk.Tk()
combo = ttk.Combobox(root)
combo.pack()
def add_value(v):
combo['values'] = tuple(list(combo['values']) + ['v'])
add_value(row[0])
root.mainloop()