本文将通过一个完整的python项目——图书管理系统,演示如何利用Tkinter构建GUI 界面,结合SQLite数据库实现增删改查功能。代码简洁易懂,适合python初学者学习和二次开发。
一、项目功能概览
- 图书管理:添加、查看、修改、删除图书信息
- 数据存储:使用SQLite持久化存储图书数据
- 可视化界面:表格展示数据,支持快速选择和编辑
- 输入校验:关键字段非空校验与操作确认提示
二、技术栈与依赖库
import tkinter as tk
from tkinter import ttk, messagebox
import sqlite3
- Tkinter:Python标准GUI库,快速构建窗口应用
- SQLite:轻量级嵌入式数据库,无需额外配置
- Treeview:表格组件,支持数据多列展示
三、核心代码解析
1. 数据库设计
def create_table(self):
cursor = self.conn.cursor()
cursor.execute('''CREATE TABLE IF NOT EXISTS books
(id INTEGER PRIMARY KEY,
title TEXT NOT NULL,
author TEXT NOT NULL,
year INTEGER)''')
self.conn.commit()
- 创建
books
表,包含ID(主键)、书名、作者、出版年份字段 - 使用
IF NOT EXISTS
避免重复建表
2. GUI界面布局
采用网格布局划分功能区域:
- 输入区:
LabelFrame
包含书名、作者、年份的输入框 - 操作区:四个功能按钮(添加/显示/修改/删除)
- 展示区:
Treeview
表格+滚动条显示图书列表
3. 关键功能实现
添加图书(完整输入校验):
def add_book(self):
title = self.title_entry.get()
author = self.author_entry.get()
year = self.year_entry.get()
if title and author and year:
cursor = self.conn.cursor()
cursor.execute("INSERT INTO books VALUES (NULL,?,?,?)",
(title, author, year))
self.conn.commit()
messagebox.showinfo("成功", "图书添加成功!")
self.show_books() # 刷新表格
数据绑定(点击表格自动填充输入框):
def on_tree_select(self, event):
selected_items = self.tree.selection()
if selected_items:
item = selected_items[0]
values = self.tree.item(item)['values']
# 将选中数据回填至输入框
self.title_entry.insert(0, values[1])
self.author_entry.insert(0, values[2])
self.year_entry.insert(0, values[3])
四、运行与使用
- 启动系统:执行
python book_management.py
- 操作流程:
- 添加图书:填写信息 → 点击"添加图书"
- 修改记录:选中表格行 → 编辑信息 → 点击"修改图书"
- 删除记录:选中行 → 点击"删除图书" → 确认