python treeview 设置删除按钮删除treeview和mysql数据库中的某一行
时间: 2024-01-12 08:03:31 浏览: 180
可以按照以下步骤设置删除按钮删除treeview和mysql数据库中的某一行:
1. 在TreeView中添加删除按钮的列,可以使用tkinter库中的Button控件实现。
2. 给删除按钮绑定一个点击事件,当用户点击该按钮时,触发对应的函数。
3. 在函数中获取当前选中的行,可以使用TreeView中的selection()方法。
4. 从选中的行中获取到需要删除的数据的主键值。
5. 使用mysql-connector-python模块连接到数据库,并且执行删除语句。
6. 从TreeView中删除对应的行。
下面是一个示例代码,可以参考一下:
```python
import mysql.connector
from tkinter import *
from tkinter import ttk
# 创建数据库连接
conn = mysql.connector.connect(
host="localhost",
user="root",
password="password",
database="test_db"
)
# 创建TreeView
root = Tk()
tree = ttk.Treeview(root)
tree.pack()
# 在TreeView中添加删除按钮的列
tree["columns"] = ("name", "age", "action")
tree.column("#0", width=0, stretch=NO)
tree.column("name", width=100, anchor=W)
tree.column("age", width=100, anchor=W)
tree.column("action", width=100, anchor=W)
tree.heading("#0", text="", anchor=W)
tree.heading("name", text="Name", anchor=W)
tree.heading("age", text="Age", anchor=W)
tree.heading("action", text="Action", anchor=W)
# 添加数据到TreeView
cursor = conn.cursor()
cursor.execute("SELECT * FROM user")
for row in cursor.fetchall():
tree.insert("", END, text="", values=row[:-1] + ("Delete",))
# 删除函数
def delete():
# 获取当前选中的行
selection = tree.selection()
# 获取需要删除的数据的主键值
for item in selection:
pk = tree.item(item, "values")[0]
# 连接数据库,并且执行删除语句
cursor = conn.cursor()
cursor.execute("DELETE FROM user WHERE id=%s", (pk,))
conn.commit()
# 从TreeView中删除对应的行
tree.delete(item)
# 给删除按钮绑定点击事件
tree.bind("<Button-1>", lambda event: delete() if tree.identify_region(event.x, event.y) == "cell" else None)
root.mainloop()
```
在这个示例中,我们创建了一个具有删除按钮的TreeView,当用户点击删除按钮时,会触发delete()函数。在该函数中,我们首先从选中的行中获取需要删除的数据的主键值,然后连接到mysql数据库,并且执行删除语句。最后,我们从TreeView中删除对应的行。
阅读全文