Python tkinter删除列表框列错误; self.tk.call(self._w, “删除”, 项目)
我是新人,仍在学习 Python 和 SQl。因此,我按照 https://www.youtube.com/watch? 的教程进行操作? v=6Dmh4ZyS2J0&t=2s
在第101行,我添加了一段代码,其中 listBox.delete(0,END),此代码用于我在行143
Button( root, text="查看最新",command = show,height=3, width= 13).place(x=250+110, y=130)
当用户添加、删除或更新数据时,他们可以查看他们的最新更新他们通过单击此按钮在列表框中创建。它将清除列表框并从 sql 插入最新更新的数据库。由于某种原因,我不断收到此错误,
self.tk.call(self._w, "删除", 项目)
import tkinter as tk
from tkinter import ttk, messagebox
import mysql.connector
from tkinter import *
def GetValue(event):
e1.delete(0, END)
e2.delete(0, END)
e3.delete(0, END)
e4.delete(0, END)
row_id = listBox.selection()[0]
select = listBox.set(row_id)
e1.insert(0,select['id'])
e2.insert(0,select['empname'])
e3.insert(0,select['mobile'])
e4.insert(0,select['salary'])
def Add():
studid = e1.get()
studname = e2.get()
coursename = e3.get()
feee = e4.get()
mysqldb=mysql.connector.connect(host="localhost",user="root",password="",database="payroll")
mycursor=mysqldb.cursor()
try:
sql = "INSERT INTO registation (id,empname,mobile,salary) VALUES (%s, %s, %s, %s)"
val = (studid,studname,coursename,feee)
mycursor.execute(sql, val)
mysqldb.commit()
lastid = mycursor.lastrowid
messagebox.showinfo("information", "Employee inserted successfully...")
e1.delete(0, END)
e2.delete(0, END)
e3.delete(0, END)
e4.delete(0, END)
e1.focus_set()
except Exception as e:
print(e)
mysqldb.rollback()
mysqldb.close()
def update():
studid = e1.get()
studname = e2.get()
coursename = e3.get()
feee = e4.get()
mysqldb=mysql.connector.connect(host="localhost",user="root",password="",database="payroll")
mycursor=mysqldb.cursor()
try:
sql = "Update registation set empname= %s,mobile= %s,salary= %s where id= %s"
val = (studname,coursename,feee,studid)
mycursor.execute(sql, val)
mysqldb.commit()
lastid = mycursor.lastrowid
messagebox.showinfo("information", "Record Updateddddd successfully...")
e1.delete(0, END)
e2.delete(0, END)
e3.delete(0, END)
e4.delete(0, END)
e1.focus_set()
except Exception as e:
print(e)
mysqldb.rollback()
mysqldb.close()
def delete():
studid = e1.get()
mysqldb=mysql.connector.connect(host="localhost",user="root",password="",database="payroll")
mycursor=mysqldb.cursor()
try:
sql = "delete from registation where id = %s"
val = (studid,)
mycursor.execute(sql, val)
mysqldb.commit()
lastid = mycursor.lastrowid
messagebox.showinfo("information", "Record Deleteeeee successfully...")
e1.delete(0, END)
e2.delete(0, END)
e3.delete(0, END)
e4.delete(0, END)
e1.focus_set()
except Exception as e:
print(e)
mysqldb.rollback()
mysqldb.close()
def show():
listBox.delete(0,END)
mysqldb = mysql.connector.connect(host="localhost", user="root", password="", database="payroll")
mycursor = mysqldb.cursor()
mycursor.execute("SELECT id,empname,mobile,salary FROM registation")
records = mycursor.fetchall()
print(records)
for i, (id,stname, course,fee) in enumerate(records, start=1):
listBox.insert("", "end", values=(id, stname, course, fee))
mysqldb.close()
root = Tk()
root.geometry("800x500")
global e1
global e2
global e3
global e4
tk.Label(root, text="Employee Registation", fg="red", font=(None, 30)).place(x=300, y=5)
tk.Label(root, text="Employee ID").place(x=10, y=10)
Label(root, text="Employee Name").place(x=10, y=40)
Label(root, text="Mobile").place(x=10, y=70)
Label(root, text="Salary").place(x=10, y=100)
e1 = Entry(root)
e1.place(x=140, y=10)
e2 = Entry(root)
e2.place(x=140, y=40)
e3 = Entry(root)
e3.place(x=140, y=70)
e4 = Entry(root)
e4.place(x=140, y=100)
Button(root, text="Add",command = Add,height=3, width= 13).place(x=30, y=130)
Button(root, text="update",command = update,height=3, width= 13).place(x=140, y=130)
Button(root, text="Delete",command = delete,height=3, width= 13).place(x=250, y=130)
Button(root, text="View Latest",command = show,height=3, width= 13).place(x=250+110, y=130)
cols = ('id', 'empname', 'mobile','salary')
listBox = ttk.Treeview(root, columns=cols, show='headings' )
for col in cols:
listBox.heading(col, text=col)
listBox.grid(row=1, column=0, columnspan=2)
listBox.place(x=10, y=200)
show()
listBox.bind('<Double-Button-1>',GetValue)
root.mainloop()
I am new and still learning about Python and SQl. So I follow a tutorial from https://www.youtube.com/watch?v=6Dmh4ZyS2J0&t=2s
At line 101, I add a code which are
listBox.delete(0,END), this code is use for the button that have I have created at line 143
Button(root, text="View Latest",command = show,height=3, width= 13).place(x=250+110, y=130)
When user add or delete or update a data, they can see their latest update they made at the listbox by clicking this button. It will clear the listbox and insert the latest updated database from sql. For some reason I keep on getting this error,
self.tk.call(self._w, "delete", items)
import tkinter as tk
from tkinter import ttk, messagebox
import mysql.connector
from tkinter import *
def GetValue(event):
e1.delete(0, END)
e2.delete(0, END)
e3.delete(0, END)
e4.delete(0, END)
row_id = listBox.selection()[0]
select = listBox.set(row_id)
e1.insert(0,select['id'])
e2.insert(0,select['empname'])
e3.insert(0,select['mobile'])
e4.insert(0,select['salary'])
def Add():
studid = e1.get()
studname = e2.get()
coursename = e3.get()
feee = e4.get()
mysqldb=mysql.connector.connect(host="localhost",user="root",password="",database="payroll")
mycursor=mysqldb.cursor()
try:
sql = "INSERT INTO registation (id,empname,mobile,salary) VALUES (%s, %s, %s, %s)"
val = (studid,studname,coursename,feee)
mycursor.execute(sql, val)
mysqldb.commit()
lastid = mycursor.lastrowid
messagebox.showinfo("information", "Employee inserted successfully...")
e1.delete(0, END)
e2.delete(0, END)
e3.delete(0, END)
e4.delete(0, END)
e1.focus_set()
except Exception as e:
print(e)
mysqldb.rollback()
mysqldb.close()
def update():
studid = e1.get()
studname = e2.get()
coursename = e3.get()
feee = e4.get()
mysqldb=mysql.connector.connect(host="localhost",user="root",password="",database="payroll")
mycursor=mysqldb.cursor()
try:
sql = "Update registation set empname= %s,mobile= %s,salary= %s where id= %s"
val = (studname,coursename,feee,studid)
mycursor.execute(sql, val)
mysqldb.commit()
lastid = mycursor.lastrowid
messagebox.showinfo("information", "Record Updateddddd successfully...")
e1.delete(0, END)
e2.delete(0, END)
e3.delete(0, END)
e4.delete(0, END)
e1.focus_set()
except Exception as e:
print(e)
mysqldb.rollback()
mysqldb.close()
def delete():
studid = e1.get()
mysqldb=mysql.connector.connect(host="localhost",user="root",password="",database="payroll")
mycursor=mysqldb.cursor()
try:
sql = "delete from registation where id = %s"
val = (studid,)
mycursor.execute(sql, val)
mysqldb.commit()
lastid = mycursor.lastrowid
messagebox.showinfo("information", "Record Deleteeeee successfully...")
e1.delete(0, END)
e2.delete(0, END)
e3.delete(0, END)
e4.delete(0, END)
e1.focus_set()
except Exception as e:
print(e)
mysqldb.rollback()
mysqldb.close()
def show():
listBox.delete(0,END)
mysqldb = mysql.connector.connect(host="localhost", user="root", password="", database="payroll")
mycursor = mysqldb.cursor()
mycursor.execute("SELECT id,empname,mobile,salary FROM registation")
records = mycursor.fetchall()
print(records)
for i, (id,stname, course,fee) in enumerate(records, start=1):
listBox.insert("", "end", values=(id, stname, course, fee))
mysqldb.close()
root = Tk()
root.geometry("800x500")
global e1
global e2
global e3
global e4
tk.Label(root, text="Employee Registation", fg="red", font=(None, 30)).place(x=300, y=5)
tk.Label(root, text="Employee ID").place(x=10, y=10)
Label(root, text="Employee Name").place(x=10, y=40)
Label(root, text="Mobile").place(x=10, y=70)
Label(root, text="Salary").place(x=10, y=100)
e1 = Entry(root)
e1.place(x=140, y=10)
e2 = Entry(root)
e2.place(x=140, y=40)
e3 = Entry(root)
e3.place(x=140, y=70)
e4 = Entry(root)
e4.place(x=140, y=100)
Button(root, text="Add",command = Add,height=3, width= 13).place(x=30, y=130)
Button(root, text="update",command = update,height=3, width= 13).place(x=140, y=130)
Button(root, text="Delete",command = delete,height=3, width= 13).place(x=250, y=130)
Button(root, text="View Latest",command = show,height=3, width= 13).place(x=250+110, y=130)
cols = ('id', 'empname', 'mobile','salary')
listBox = ttk.Treeview(root, columns=cols, show='headings' )
for col in cols:
listBox.heading(col, text=col)
listBox.grid(row=1, column=0, columnspan=2)
listBox.place(x=10, y=200)
show()
listBox.bind('<Double-Button-1>',GetValue)
root.mainloop()
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论