Отображение данных sqlite3 в Treeview - PullRequest
1 голос
/ 28 марта 2019

Я пишу код, который показывает список продуктов с их информацией.

Мой код:

-подключается к базе данных и успешно получает элементы

-попадет правильно

Проблема:

-Еслиназвание моего продукта - одно слово (например, яйца), мой код отображает все в правильном столбце

-Если имя моего продукта состоит из двух или более слов (например, замороженные хлопья), мой код отображает «матовое»в первом столбце затем «хлопья» в следующих столбцах, что неверно

from tkinter import ttk
import tkinter as tk
import sqlite3
try:
    from Tkinter import *
except ImportError:
    from tkinter import *

def View():
    db = sqlite3.connect("food_data.db")
    cursor = db.cursor()
    cursor.execute("SELECT name, quantity, expdate FROM food ORDER BY expdate ASC")
    for row in cursor:
        disp=('{0} {1} {2}'.format(row[0], row[1], row[2]))
        tree.insert("",tk.END, values=disp)
    db.close()

root = tk.Tk()
root.geometry("800x480")
tree = ttk.Treeview(column=("column1","column2","column3"),show='headings')
tree.heading("#1", text="Name")
tree.heading("#2", text="Quantity")
tree.heading("#3", text="Expiration Date")
tree.pack()

b2 = tk.Button(text="view data", command=View)
b2.pack()

root.mainloop()

Предполагается, что элементы с несколькими словами в названии могут успешно отображаться в одном столбце, а не переноситься в следующий.

1 Ответ

0 голосов
/ 28 марта 2019
def View():
    db = sqlite3.connect("food_data.db")
    cursor = db.cursor()
    cursor.execute("SELECT name, quantity, expdate FROM food ORDER BY expdate ASC")
    for row in cursor:
       # disp=('{0} {1} {2}'.format(row[0], row[1], row[2]))
        tree.insert("",tk.END, values=(row[0], row[1], row[2]))
    db.close()

Сделайте так, вместо этого вам нужно вставить содержимое в древовидную структуру как tuple или list после итерации по нему.

 tree.insert("",tk.END, values=(row[0], row[1], row[2]))
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...