我是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方法所需的参数,但我仍然可以'似乎做到了。预先感谢您的帮助
根据the docs,insert
方法采用2个位置(排序问题)参数。例如
text.insert('1.0', 'here is my text to insert')
您仅提供了第二个参数,也添加了第一个参数(“插入位置”)。您的错误清楚地说明了这一点。