在tkinter中将mysql表中的值显示到treeview中

问题描述 投票:0回答:1

我是python和tkinter的新手,我的任务是用数据库创建一个简单的信息系统。我已经看过并遵循了教程,但是它对我没有用(很可能是我的疏忽)。我的目标是在tkinter的treeview小部件中显示数据库表,这是我的代码。

import tkinter
from tkinter.ttk import *
from tkinter import ttk
import mysql.connector

def update():
    conn = mysql.connector.connect(host="localhost",
                                   user="root",
                                   passwd="root",
                                   db="sys")

    #records = Treeview.get_children()
    #for element in records:
        #Treeview.delete(element)
    query = 'SELECT * FROM student'
    cursor = conn.cursor()
    cursor.execute(query)
    data = cursor.fetchall()
    for row in data:
        Treeview.insert("", "end",  text='',  values=(row[0], row[1], row[2], row[3], row[4]))


root = tkinter.Tk()
root.geometry("900x540")

btn1 = tkinter.Button(text="add").place(x=750, y=10)
btn2 = tkinter.Button(text="update", command=update).place(x=780, y=10)
btn3 = tkinter.Button(text="delete").place(x=830, y=10)

table = ttk.Treeview(root, height=5, columns=("#0", "#1", "#2", "#3", "#4"))
table.place(x=1, y=100)
table.heading('#0', text='student_id', anchor='w')
table.heading('#1', text='fname', anchor='w')
table.heading('#2', text='mname', anchor='w')
table.heading('#3', text='Course&Section', anchor='w')
table.heading('#4', text='P.E Sport', anchor='w')
root.mainloop()

我不断收到错误“ TypeError:insert()缺少1个必需的位置参数:'index'”,我尽我所能尽可能地理解树视图的insert方法所需的参数,但我仍然可以'似乎做到了。预先感谢您的帮助

mysql python-3.x database tkinter treeview
1个回答
0
投票

根据the docsinsert方法采用2个位置(排序问题)参数。例如

text.insert('1.0', 'here is my text to insert')

您仅提供了第二个参数,也添加了第一个参数(“插入位置”)。您的错误清楚地说明了这一点。

© www.soinside.com 2019 - 2024. All rights reserved.