【问题标题】:Displaying sqlite3 data into Treeview在 Treeview 中显示 sqlite3 数据
【发布时间】:2019-03-28 16:02:28
【问题描述】:

我正在编写一些代码来显示食物列表及其信息。

我的代码:

-连接数据库并成功获取项目

-循环正确

问题:

-如果我的产品名称是一个单词(例如:eggs),我的代码会在正确的列中显示所有内容

-如果我的产品名称是两个或多个单词(例如:frosted flakes),我的代码在第一列显示“frosted”,然后在下一列显示“flakes”,这是不正确的

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()

假设名称中包含多个单词的项目成功显示在一列而不是下一列。

【问题讨论】:

    标签: python-3.x tkinter sqlite treeview


    【解决方案1】:
    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()
    

    这样做,而不是您必须在迭代后将内容插入到树视图中为tuplelist

     tree.insert("",tk.END, values=(row[0], row[1], row[2]))
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多