编程的练习都源自生活,今天我们用Python的窗口Tkinter快速做一个记账软件,不会使用Tkinter的朋友也可以快速了解。
一 记账软件知识点
为了让Python初学者学会更多的知识,综合的掌握Python,这个软件特地加入了如下的Python知识点,
我这是都是原创,你在其他地方是肯定找不到同样的、适合Python初学者的记账软件
- 循环及条件语句
- 常用命令的使用
- 列表及常用命令的使用
- 字典及常用命令的使用
- 函数及返回值
- 文件的打开与保存
- 异常错误处理
- Tkinter窗口的入门使用
二 Python版记账软件的功能实现
1.实现如下记账窗口

2.输入数据,并判断
1)日期是否为数字格式
2)日期位数是否正确
3)必输入项目是否为空
4)价格是否为数字
3.将数据保存到文件
4.控件内容清空及激活焦点
三 重点功能讲解
- 建立窗口

# 导入 tkinter 模块,并简写为 tk
import tkinter as tk
# 创建主窗口
root = tk.Tk()
# 设置窗口标题
root.title("记账程序")
# 设置窗口大小和屏幕位置
#(宽x高+x偏移+y偏移)
root.geometry('300x250+750+250')
其他代码写在这里
# 启动 GUI 主事件循环
# 最后一行
root.mainloop()
- 显示一行:标签+文本输入框

#为了将标签和文本框显示在一行
#窗口中建立一个容器F1,放在root窗口中
F1 = tk.Frame(root)
#F1显示,与上下的间距5 像素
F1.pack(pady=5)
# 添加字段标签,放在F1窗口中
# 内容为日期工,左对齐
tk.Label(F1, text=“日期").pack(side="left", padx=5)
# 建立文本框控件,显示在F1中
e = tk.Entry(F1)
e.pack()
- 单选按钮的显示

# 创建 StringVar 变量用于记录“收支”选择(收入/支出)
choice = tk.StringVar()
# 默认选中“收入”
choice.set("收入")
# 使用两个单选按钮(Radiobutton)表示收入/支出
tk.Radiobutton(F1, text="收入", variable=choice, value="收入").pack(side="left", padx=10)
tk.Radiobutton(F1, text="支出", variable=choice, value="支出").pack(side="left", padx=10)
- 下拉菜单的使用

# 定义分类下拉选项
list_lei = ["餐饮", "交通", "购物", "娱乐", "工资", "转账", "其他"]
# 用于绑定 Combobox 的当前值
lei = tk.StringVar()
# 默认选中第一个分类:“餐饮”
lei.set(list_lei[0])
# 使用只读下拉框(Combobox)供用户选择分类
ttk.Combobox(F1, textvariable=lei, values=list_lei, state='readonly', width=17).pack()
- 按钮的使用
# “提交”按钮:调用 dataPro 函数处理并保存数据
tk.Button(F2, text=" 提 交 ", command=dataPro).pack(side="left", padx=25)
点击时执行dataPro函数,这个函数是咱自己定义的
- 控件的常用操作
# 获取“日期”输入框内容
riqi = 控件变量名.get()
#控件的激活,也就是光标闪烁的位置
控件变量名.focus()
- 信息弹窗的设置

# 从 tkinter 中导入messagebox(用于弹出提示框)
from tkinter import messagebox
#显示错误信息
messagebox.showerror("错误", "输入的日期不是8位,\n\n格式为20240506")
#显示提示信息
messagebox.showinfo("提示", "保存成功!")
- 异常处理的使用
# 尝试将“价格”转换为浮点数并保留两位小数
try:
jia = round(float(jia.strip()), 2)
except:
# 如果转换失败,说明不是有效数字
messagebox.showerror("错误", "输入的价格应为整数或小数")
dict_entry.get('价格').focus()
#结束这个函数
return
- 保存文件
with open("data.txt", 'a', encoding="utf-8") as f:
f.write(s) # 写入一行数据
四 源代码
程序源代码已上传,
包括完整的代码和注释,可直接运行
https://pan.baidu.com/s/1n3HkXAEncpoDjktvx7j69Q?pwd=4hxj
