我想就下面的代码寻求一些建议:
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
您的代码中有两个问题:
info
when inserting record into treeview. row
should be usedtreeview.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
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。