Excel 有表格编辑功能,为什么我还要弄一个,不是多此一举么。道理是对的,但是很多会员功能才更加强大,不是吗?
我们学语言,一来可以练习编码熟练的,巩固知识点,更重要的是你熟悉开发,以后如果你想实现一个功能,你轻松都能实现,还需要弄个会员么。加强能力就是赚钱。
另外很多开发需要在原有的功能达不到我们的需求,你能设计、改进那不是更好么。
我打算实现如下界面额表格,可以添加一行,修改编辑某个字段,删除行,最后可以保存起来。
上图保存按钮还有很多没看到 ,我们进行调整下
直接给代码
import tkinter as tk
from tkinter import ttk
from tkinter import messagebox
import csv
class EditableTableApp:
def __init__(self, root):
self.root = root
self.root.title("设计一个能编辑表格界面")
self.root.geometry("900x400")
# 创建表格框架
self.create_table()
# 创建操作按钮
self.create_buttons()
# 初始化数据
self.load_initial_data()
def create_table(self):
# 表格列配置
self.columns = ("ID", "姓名", "年龄", "邮箱")
# 创建 Treeview 组件
self.tree = ttk.Treeview(
self.root, columns=self.columns,
show="headings", selectmode="browse"
)
# 配置列属性
self.tree.heading("ID", text="ID", anchor=tk.W)
self.tree.heading("姓名", text="姓名")
self.tree.heading("年龄", text="年龄")
self.tree.heading("邮箱", text="邮箱")
self.tree.column("ID", width=80, anchor=tk.W)
self.tree.column("姓名", width=150)
self.tree.column("年龄", width=80)
self.tree.column("邮箱", width=250)
# 添加滚动条
vsb = ttk.Scrollbar(self.root, orient="vertical", command=self.tree.yview)
self.tree.configure(yscrollcommand=vsb.set)
# 布局组件
self.tree.pack(side=tk.LEFT, fill=tk.BOTH, expand=True)
vsb.pack(side=tk.RIGHT, fill=tk.Y)
# 绑定双击编辑事件
self.tree.bind("<Double-1>", self.on_double_click)
def create_buttons(self):
# 按钮框架
btn_frame = ttk.Frame(self.root)
btn_frame.pack(pady=10, fill=tk.X)
# 功能按钮
ttk.Button(btn_frame, text="添加当前行", command=self.add_row).pack(side=tk.LEFT, padx=5)
ttk.Button(btn_frame, text="删除当前行", command=self.delete_row).pack(side=tk.LEFT, padx=5)
ttk.Button(btn_frame, text="保存", command=self.save_to_csv).pack(side=tk.LEFT, padx=5)
def load_initial_data(self):
# 初始化示例数据
for i in range(1, 6):
self.tree.insert("", tk.EN
测试如下
把用户1修改成用户修改
可以点保存 就更新表格了
新增加一行
记得保存,不保存退出就没了哦。
代码编辑图如下:
另外你可以增加一些验证关系。比如年龄必须是数字,还有有的字段不能为空等等,加油,为原因努力学习你,加油。