python中怎么双击编辑entry里的值更改到treeview 表格中,举例
时间: 2024-03-04 14:49:17 浏览: 76
可以使用tkinter中的Treeview和Entry控件来实现该功能。下面是一个简单的示例代码:
```python
import tkinter as tk
from tkinter import ttk
class App(tk.Tk):
def __init__(self):
super().__init__()
self.title("Treeview Demo")
self.geometry("400x300")
# 创建Treeview表格
self.treeview = ttk.Treeview(self)
self.treeview.pack(fill=tk.BOTH, expand=True)
# 添加表头
self.treeview["columns"] = ("Name", "Age")
self.treeview.heading("#0", text="ID")
self.treeview.heading("Name", text="Name")
self.treeview.heading("Age", text="Age")
# 添加数据
for i in range(10):
self.treeview.insert("", "end", text=str(i), values=("John", "20"))
# 绑定双击事件
self.treeview.bind("<Double-1>", self.on_double_click)
def on_double_click(self, event):
# 获取选中的行
item = self.treeview.selection()[0]
# 获取选中行的值
values = self.treeview.item(item, "values")
# 创建Entry控件
entry = ttk.Entry(self.treeview, justify="center")
entry.insert(0, values[0])
entry.pack(side=tk.LEFT, fill=tk.BOTH, expand=True)
# 绑定回车事件
entry.bind("<Return>", lambda event, item=item: self.on_edit_done(event, item, entry))
# 设置焦点
entry.focus_set()
def on_edit_done(self, event, item, entry):
# 更新Treeview表格中的值
value = entry.get()
self.treeview.set(item, "Name", value)
# 销毁Entry控件
entry.destroy()
if __name__ == "__main__":
app = App()
app.mainloop()
```
在该示例中,我们创建了一个Treeview表格,并添加了一些数据。当选中某一行并双击时,会创建一个Entry控件用于编辑该行的Name字段。当按下回车键后,会更新Treeview表格中的值,并销毁Entry控件。
阅读全文