开发者社区> 问答> 正文

使用SQL信息填充Treeview?

我想就下面的代码寻求一些建议:

from tkinter import *
from tkinter import ttk
import sqlite3

root = Tk()
root.geometry("500x500")
root.title("Inventory Balance")


def db():
    global conn, mycursor
    conn = sqlite3.connect('MyStock.sql3')
    mycursor = conn.cursor()


def data():`
    tree.delete(*tree.get_children())
    mycursor.execute("SELECT * FROM ItemCode")
    for row in myscursor:
        tree.insert('', 'end', values=row[1:6])

    conn.close()

frame = Frame(root)
frame.pack()

tree = ttk.Treeview(frame, columns = (1,2,3,4,5), height = 20, show = "headings")
tree.pack(side = 'top')

tree.heading(1, text="ItemCode")
tree.heading(2, text="Description")
tree.heading(3, text="Category")
tree.heading(4, text="Unit")
tree.heading(5, text="Quantity")

tree.column(1, width = 100)
tree.column(2, width = 100)
tree.column(3, width = 100)
tree.column(4, width = 100)
tree.column(5, width = 100)

# Inserting Scrollbar
scroll = ttk.Scrollbar(frame, orient="vertical", command=tree.yview)
scroll.pack(side = 'right', fill = 'y')

tree.configure(yscrollcommand=scroll.set)

root.mainloop()

稍后,我将不得不使用它作为主屏幕,添加按钮,并在显示使用了股票的情况下不断更新树视图,然后通过另一个python tkinter脚本进行更新。我的主要问题是它读取正确的列(ItemCode,描述,类别,单位,数量),但是数据库中包含的信息未显示在树视图中。

请提供帮助,如有需要,请随时询问更多信息。

我按照建议编辑了脚本,但最终还是这样:在此处输入图像描述

再次感谢你

问题来源:stackoverflow

展开
收起
is大龙 2020-03-21 11:02:23 524 0
1 条回答
写回答
取消 提交回答
  • 您的代码中有两个问题:

    • using info when inserting record into treeview. row should be used
    • treeview.insert(...) expects two positional arguments: parent and index

    所以改变:

    info = mycursor.fetchall()
    for row in info:
        tree.insert(values=(info[1], info[2], info[3], info[4], info[5]))
    

    至:

    for row in mycursor:
        tree.insert('', 'end', values=row[1:6])
    

    回答来源:stackoverflow

    2020-03-21 11:02:42
    赞同 展开评论 打赏
问答分类:
问答标签:
问答地址:
问答排行榜
最热
最新

相关电子书

更多
SQL Server在电子商务中的应用与实践 立即下载
GeoMesa on Spark SQL 立即下载
原生SQL on Hadoop引擎- Apache HAWQ 2.x最新技术解密malili 立即下载