编程开源技术交流,分享技术与知识

网站首页 > 开源技术 正文

如何用 Python实现简单的表格界面

wxchong 2025-05-02 13:59:09 开源技术 8 ℃ 0 评论

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修改成用户修改

可以点保存 就更新表格了


新增加一行


记得保存,不保存退出就没了哦。

代码编辑图如下:




另外你可以增加一些验证关系。比如年龄必须是数字,还有有的字段不能为空等等,加油,为原因努力学习你,加油。

Tags:

本文暂时没有评论,来添加一个吧(●'◡'●)

欢迎 发表评论:

最近发表
标签列表