石岛编程周老师:实战是掌握编程最快的方法,没有之一放下书本、放下理论,马上动手做起来。
编程的练习都源自生活,今天我们用Python的窗口Tkinter快速做一个记账软件,不会使用Tkinter的朋友也可以快速了解。
为了让Python初学者学会更多的知识,综合的掌握Python,这个软件特地加入了如下的Python知识点,
我这是都是原创,你在其他地方是肯定找不到同样的、适合Python初学者的记账软件
1.实现如下记账窗口

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

# 导入 tkinter 模块,并简写为 tkimport 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函数,这个函数是咱自己定义的6. 控件的常用操作
# 获取“日期”输入框内容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()#结束这个函数returnwith open("data.txt", 'a', encoding="utf-8") as f: f.write(s) # 写入一行数据程序源代码已上传,包括完整的代码和注释,可直接运行请在后台获取吧,在这里显示太长了
如果你觉得这个项目有用,欢迎:️⃣ 点赞/在看——让更多同学看到️⃣ 留言告诉我——你还想做什么作品?️⃣ 关注公众号,更新各种实战项目,不迷路!
带你用实战项目快速掌握编程,分享Python、C++、ESP32、掌控板、AI编程等软硬件编程实战项目,欢迎关注!