Форум сайта python.su
Всем привет!
Вопрос состоит в том, как вставить в treeview данные из БД начиная из столбца “description”,
(если что код treeview приведен справочно)
import tkinter as tk from tkinter import ttk root = tk.Tk() root.title("Household finance") root.geometry("665x360") tree = ttk.Treeview(columns=('ID', 'description', 'costs', 'total'), height=15, show='headings') tree.column('ID', width=30, anchor=tk.CENTER) tree.column('description', width=365, anchor=tk.CENTER) tree.column('costs', width=150, anchor=tk.CENTER) tree.column('total', width=100, anchor=tk.CENTER) tree.heading('ID', text='ID') tree.heading('description', text='Наименование') tree.heading('costs', text='Статья дохода/расхода') tree.heading('total', text='Сумма') tree.pack() root.mainloop()
def view_records(self): self.db.c.execute('''SELECT description, costs, total FROM finance''') [self.tree.delete(i) for i in self.tree.get_children()] [self.tree.insert('', 'end', values=row) for row in self.db.c.fetchall()]
Отредактировано Feelgood (Июнь 24, 2020 22:11:50)
Офлайн
А как данные получить?
Сначала просто получите данные, отпринтуйте их, а потом уже смело вставляйте.
Офлайн
Для начала можно просто руками набросать данные и попробовать и посомтреть как оно выглядити работает
а потом уже с базы тянуть.
Офлайн
ZerG
Код с treeview - это тестово для форума, а функция из реального приложения… Когда тяну из БД 3 поля, и вставляю в виджет treeview в котором 4 столбца, соответственно вставка начинается из первого столбца, а мне нужно чтоб начиналось со второго столбца.
Офлайн
Feelgoodа в первом столбце что будет? не понятно,там будет ID из базы данных,или просто нумерация в дереве по порядку
вставка начинается из первого столбца, а мне нужно чтоб начиналось со второго столбца.
[self.tree.insert('', 'end', values=('',row)) for row in self.db.c.fetchall()]
Отредактировано xam1816 (Июнь 25, 2020 23:16:15)
Офлайн
xam1816
Да будет нумерация по порядку, ID тоже доделаю.
Тогда оно всё в один столбец помещает, скрин прикрепил:
[self.tree.insert('', 'end', values=('',row)) for row in self.db.c.fetchall()]
Прикреплённый файлы:
Снимок.PNG (89,6 KБ)
Офлайн
тогда так
tree.insert('', 'end', values=("",row[0],row[1],row[2]))
Офлайн
xam1816
агонь) всё красиво, спасибо!!!
Офлайн