Python(GUI)之活动积分记录表

简介: 本文介绍了一套使用Python的Tkinter库构建的学生活动积分记录系统。该系统允许教师选择班级和学生,输入加分分数及原因,并将数据保存至文件,旨在简化学生积分管理流程,提升教学效率。

 构建学生活动积分记录系统:使用Tkinter实现GUI

引言

在教育领域,记录学生的活动积分是激励学生参与和评估学生表现的重要手段。本文将介绍如何使用Python的Tkinter库构建一个简单易用的学生活动积分记录系统,帮助教师高效地管理学生积分。

Tkinter简介

Tkinter是Python的标准GUI库,它提供了丰富的组件和简单的使用方法,非常适合快速开发桌面应用程序。

系统设计

功能需求

- 允许教师选择班级和学生。

- 允许教师输入加分分数和加分原因。

- 确保加分分数在1到100分之间。

- 将输入的数据保存到文件中。

技术选型

- Python作为开发语言。

- Tkinter作为GUI框架。

系统实现

### 1. 导入Tkinter库
```python
import tkinter as tk
```
### 2. 创建主窗口
```python
root = tk.Tk()
root.title("活动积分记录")
```
### 3. 定义班级数据
```python
class_options = ["2301", "2302", "2303"]
```
### 4. 创建GUI组件
#### 标签组件
```python
tk.Label(root, text="大数据专业2023级学生活动积分记录", font=("Arial", 16)).pack()
```
#### 下拉菜单
```python
selected_class = tk.StringVar(root)
class_menu = tk.OptionMenu(root, selected_class, *class_options)
class_menu.pack()
```
#### 学生选项更新函数
```python
def update_students(*args):
    # 根据选择的班级更新学生选项菜单的内容
    ...
```
#### 文本框和文本区域
```python
score_entry = tk.Entry(root)
reason_text = tk.Text(root, height=5, width=30)
```
### 5. 定义保存数据函数
```python
def save_data_to_file(data):
    with open("积分记录表.txt", "a+") as file:
        file.write(data + "\n")
```
### 6. 确认函数
```python
def confirm():
    # 获取用户输入的数据并进行逻辑处理
    ...
    # 保存数据到文件并打印信息
    ...
```
### 7. 创建确定按钮
```python
tk.Button(root, text="确定", command=confirm).pack()
```
### 8. 主事件循环
```python
root.mainloop()
```

image.gif

系统测试

在开发完成后,需要对系统进行测试,确保所有功能正常工作,特别是数据保存和更新学生选项的功能。

结语

本文介绍了如何使用Python和Tkinter库构建一个学生活动积分记录系统。该系统界面友好,操作简单,能够帮助教师高效地记录和管理学生的活动积分。希望本文能够为有类似需求的教师或开发者提供参考。

注意事项

- 确保在实际部署前对系统进行充分的测试。

- 考虑到数据的安全性,应定期备份积分记录文件。

- 根据实际需求,可以进一步扩展系统功能,如数据的查询和统计等。

附录

- [Python Tkinter官方文档](https://docs.python.org/3/library/tkinter.html)

- [Python Tkinter入门教程](https://www.tutorialspoint.com/python/python_gui_programming.htm)

---

本文提供了一个基于Tkinter的学生活动积分记录系统实现方案,希望能够帮助教育工作者更高效地进行学生管理。如果你有任何问题或建议,请随时联系我们。

 

image.gif 编辑

代码:

import tkinter as tk
# 创建主窗口
root = tk.Tk()
root.title("活动积分记录")
# 班级数据
class_options = ["2301", "2302", "2303"]
# 创建组件
tk.Label(root, text="大数据专业2023级学生活动积分记录", font=("Arial", 16)).pack()
tk.Label(root, text="请选择班级:").pack()
selected_class = tk.StringVar(root)
selected_class.set("")
class_menu = tk.OptionMenu(root, selected_class, *class_options)
class_menu.pack()
class_menu["text"] = "请选择班级 ▼"
student_data = {
    "2301": ["Student 1A", "Student 1B", "Student 1C"],
    "2302": ["Student 2A", "Student 2B", "Student 2C"],
    "2303": ["Student 3A", "Student 3B", "Student 3C"]
}
tk.Label(root, text="请选择学生:").pack()
selected_student = tk.StringVar(root)
selected_student.set(" ")
student_menu = tk.OptionMenu(root, selected_student, "")
student_menu.pack()
tk.Label(root, text="请为他进行加分(1~100分):").pack()
score_entry = tk.Entry(root)
score_entry.pack()
tk.Label(root, text="加分原因:").pack()
reason_text = tk.Text(root, height=5, width=30)
reason_text.pack()
# 保存数据到文件的函数
def save_data_to_file(data):
    with open("积分记录表.txt", "a+") as file:
        file.write(data + "\n")
# 确认函数
def confirm():
    selected_class_value = selected_class.get()
    selected_student_value = selected_student.get()
    score = score_entry.get()
    reason = reason_text.get("1.0", "end-1c")
    # 处理分数逻辑,确保分数在1~100之间
    try:
        score = int(score)
        if score > 100:
            score = 100
        elif score < 1:
            score = 1
    except ValueError:
        # 处理非整数输入的情况
        score = 0
    # 在这里可以处理确定按钮的逻辑,比如保存数据等
    data = f"班级: {selected_class_value}, 学生: {selected_student_value}, 加分: {score}, 加分原因: {reason}"
    save_data_to_file(data)  # 保存数据到文件
    print("班级:", selected_class_value)
    print("学生:", selected_student_value)
    print("加分:", score)
    print("加分原因:", reason)
# 更新学生选项函数
def update_students(*args):
    selected_student.set("")
    student_menu['menu'].delete(0, 'end')
    selected_class_value = selected_class.get()
    if selected_class_value in student_data:
        for student in student_data[selected_class_value]:
            student_menu['menu'].add_command(label=student, command=tk._setit(selected_student, student))
selected_class.trace('w', update_students)
# 创建确定按钮
tk.Button(root, text="确定", command=confirm).pack()
root.mainloop()

image.gif


目录
相关文章
|
1月前
|
数据可视化 开发者 Python
Python GUI开发:Tkinter与PyQt的实战应用与对比分析
【10月更文挑战第26天】本文介绍了Python中两种常用的GUI工具包——Tkinter和PyQt。Tkinter内置于Python标准库,适合初学者快速上手,提供基本的GUI组件和方法。PyQt基于Qt库,功能强大且灵活,适用于创建复杂的GUI应用程序。通过实战示例和对比分析,帮助开发者选择合适的工具包以满足项目需求。
126 7
|
2月前
|
Linux Android开发 开发者
【Python】GUI:Kivy库环境安装与示例
这篇文章介绍了 Kivy 库的安装与使用示例。Kivy 是一个开源的 Python 库,支持多平台开发,适用于多点触控应用。文章详细说明了 Kivy 的主要特点、环境安装方法,并提供了两个示例:一个简单的 Hello World 应用和一个 BMI 计算器界面。
81 0
|
2月前
|
机器学习/深度学习 算法框架/工具 Python
基于深度学习的手写数字识别项目GUI(Deep Learning Project – Handwritten Digit Recognition using Python)
基于深度学习的手写数字识别项目GUI(Deep Learning Project – Handwritten Digit Recognition using Python)
110 0
|
4月前
|
前端开发 JavaScript 测试技术
Python中的GUI测试
【8月更文挑战第15天】本文探讨了Python中图形用户界面(GUI)测试的关键工具——Selenium与PyQt。Selenium专为Web应用测试设计,能模拟用户行为如点击和输入文本。PyQt则基于Qt框架,用于构建丰富的桌面应用程序及编写自动化测试脚本。
|
4月前
|
存储 数据库连接 数据库
【Python】python员工信息管理系统(数据库版本)(GUI界面+数据库文件+源码)【独一无二】
【Python】python员工信息管理系统(数据库版本)(GUI界面+数据库文件+源码)【独一无二】
436 1
|
4月前
|
存储 数据可视化 Python
【python】python tkinter 计算器GUI版本(模仿windows计算器 源码)【独一无二】
【python】python tkinter 计算器GUI版本(模仿windows计算器 源码)【独一无二】
269 1
|
4月前
|
机器学习/深度学习 数据采集 自然语言处理
基于Python thinker GUI界面的股票评论数据及投资者情绪分析设计与实现
本文介绍了一个基于Python Tkinter库开发的GUI股票评论数据及投资者情绪分析系统,该系统提供股票数据展示、情绪与股价分析、模型指标分析、评论数据展示、词云分析和情感分析结果展示等功能,帮助投资者通过情感分析了解市场舆论对股票价格的影响,以辅助投资决策。
114 0
基于Python thinker GUI界面的股票评论数据及投资者情绪分析设计与实现
|
5月前
|
Python
在Python中,`tkinter`是一个用于创建图形用户界面(GUI)的标准库。
在Python中,`tkinter`是一个用于创建图形用户界面(GUI)的标准库。
|
6月前
|
Python
Python GUI进度条
Python GUI进度条
|
6月前
|
SQL 前端开发 Java
Python GUI编程(Tkinter)
Python GUI编程(Tkinter)