You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Tkinter中SQLite3数据无法在Treeview表格显示问题求助

Tkinter Treeview无法显示SQLite3数据库数据问题

程序可正常将数据插入Employees.db数据库(已手动打开数据库确认数据写入正确),但Tkinter的Treeview表格无法显示数据库中的数据。

相关代码

lab.py

def add_to_treeview():
    employees = database.fetch_employees()
    tree.delete(*tree.get_children())
    for employee in employees:
        tree.insert('', END, values=employee)

def insert():
    id = id_entry.get()
    name = name_entry.get()
    role = role_entry.get()
    gender = variable1.get()
    status = status_entry.get()
    if not (id and name and role and gender and status):
        messagebox.showerror('Error', 'Enter all fields.')
    elif database.id_exists(id):
        messagebox.showerror('Error', 'ID already exists.')
    else:
        database.insert_employee(id,name,role,gender,status)
        add_to_treeview()
        messagebox.showinfo('Success', 'Data has been inserted.')

style = ttk.Style(app)

style.theme_use('clam')
style.configure('Treeview', font=font2,foreground='#aaa',background='#000',fieldbackground='#313837')
style.map('Treeview',background=[('selected', '#1A8F2D')])

tree = ttk.Treeview(app,height=15)#9)

tree['columns'] = ('ID', 'Name', 'Role', 'Gender', 'Status')

tree.column('#0', width=0, stretch=tk.NO)
tree.column('ID', anchor=tk.CENTER, width=120)
tree.column('Name', anchor=tk.CENTER, width=120)
tree.column('Role', anchor=tk.CENTER, width=120)
tree.column('Gender', anchor=tk.CENTER, width=100)
tree.column('Status', anchor=tk.CENTER, width=120)

tree.heading('ID', text='ID')
tree.heading('Name', text='Name')
tree.heading('Role', text='Role')
tree.heading('Gender', text='Gender')
tree.heading('Status', text='Status')

tree.place(x=300,y=20)#60,y=20)

add_to_treeview()

app.mainloop()

database.py

import sqlite3

def create_table():
    conn = sqlite3.connect('Employees.db')
    cursor = conn.cursor()

    cursor.execute('''
        CREATE TABLE IF NOT EXISTS Employees (
            id TEXT PRIMARY KEY,
            name TEXT,
            role TEXT,
            gender TEXT,
            status TEXT)''')
    conn.commit()
    conn.close()

def fetch_employees():
    conn = sqlite3.connect('Employees.db')
    cursor = conn.cursor()
    cursor.execute('SELECT * FROM Employees')
    employees = cursor.fetchall()
    conn.close()
    return employees

def insert_employee(id, name, role, gender, status):
    conn = sqlite3.connect('Employees.db')
    cursor = conn.cursor()
    cursor.execute('INSERT INTO Employees (id, name, role, gender, status) VALUES (?,?,?,?,?)',
                   (id, name, role, gender, status))
    conn.commit()
    conn.close()

截图说明

  • 程序预期效果:Treeview表格中显示完整的员工数据列表
  • 程序当前状态:Treeview表格为空,无任何数据内容显示

内容的提问来源于stack exchange,提问作者Канат Муратов

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.25 11:53:14