用Python 和 PyQt5 打造你的专属学生信息系统! 附源码

在这篇博客中,我们将使用Python的PyQt5库来创建一个简单的学生信息系统。这个系统将包含一个表格来显示学生的信息,以及几个按钮来添加、删除和修改学生。

依赖库

首先,确保你已经安装了PyQt5库:

pip install PyQt5

步骤

第一步:导入必要的模块

我们需要导入一些必要的模块:

from PyQt5.QtWidgets import QApplication, QMainWindow, QTableWidget, QTableWidgetItem, QVBoxLayout, QPushButton, QWidget, QInputDialog, QLineEdit, QMessageBox
import sys

解析

  • QApplication:创建应用。
  • QMainWindow:创建主窗口。
  • QTableWidgetQTableWidgetItem:创建和管理表格。
  • QVBoxLayout:创建布局。
  • QPushButton:创建按钮。
  • QWidget:创建窗口部件。
  • QInputDialog:创建输入对话框。
  • QMessageBox:创建消息框。
第二步:创建主窗口类

我们创建一个名为StudentInfoSystem的类,这个类继承自QMainWindow

class StudentInfoSystem(QMainWindow):
    def __init__(self):
        super().__init__()

        # 创建一个表格并设置列数和行数
        self.table_widget = QTableWidget(self)
        self.table_widget.setRowCount(10)  # 更改行数为10
        self.table_widget.setColumnCount(4)

        # 设置表格的标题
        self.table_widget.setHorizontalHeaderLabels(['姓名', '年龄', '性别', '分数'])

        # 添加更多的模拟数据到表格
        students_info = [
            ['小明', '18', '男', '90'],
            ['小红', '19', '女', '95'],
            ['小强', '20', '男', '88'],
            ['小美', '18', '女', '92'],
            ['小刚', '19', '男', '85'],
            ['小花', '20', '女', '96'],
            ['小明', '18', '男', '90'],
            ['小红', '19', '女', '95'],
            ['小强', '20', '男', '88'],
            ['小美', '18', '女', '92']
        ]
        for i, student_info in enumerate(students_info):
            for j, info in enumerate(student_info):
                self.table_widget.setItem(i, j, QTableWidgetItem(info))

        # 创建一个按钮,用于添加学生
        self.add_button = QPushButton('添加学生')
        self.add_button.clicked.connect(self.add_student)

        # 创建一个按钮,用于删除学生
        self.delete_button = QPushButton('删除学生')
        self.delete_button.clicked.connect(self.delete_student)

        # 创建一个按钮,用于修改学生信息
        self.modify_button = QPushButton('修改学生信息')
        self.modify_button.clicked.connect(self.modify_student)

        # 创建一个布局,并添加表格和按钮
        layout = QVBoxLayout()
        layout.addWidget(self.table_widget)
        layout.addWidget(self.add_button)
        layout.addWidget(self.delete_button)
        layout.addWidget(self.modify_button)

        # 创建一个中心窗口部件并设置布局
        central_widget = QWidget()
        central_widget.setLayout(layout)
        self.setCentralWidget(central_widget)

        self.initUI()

    def initUI(self):
        self.setWindowTitle('学生信息系统')
        self.resize(800, 600)  # 设置窗口的大小为800x600
        self.show()

解析

  • 创建了一个表格,并设置了它的行数和列数。
  • 设置了表格的标题,并添加了一些模拟数据。
  • 创建了三个按钮,分别用于添加学生、删除学生和修改学生信息。
  • 创建了一个布局,并将表格和按钮添加到布局中。
第三步:创建槽函数

接下来,我们需要创建每个按钮对应的槽函数:

def add_student(self):
    # 获取表格的行数
    row_count = self.table_widget.rowCount()

    # 在表格的最后添加一行
    self.table_widget.insertRow(row_count)

def delete_student(self):
    # 获取选中的行
    current_row = self.table_widget.currentRow()

    # 如果有选中的行,删除该行
    if current_row >= 0:
        self.table_widget.removeRow(current_row)
    else:
        QMessageBox.warning(self, '警告', '请先选择一个学生!')

def modify_student(self):
    # 获取选中的行
    current_row = self.table_widget.currentRow()

    # 如果有选中的行,修改该行的数据
    if current_row >= 0:
        new_name, ok = QInputDialog.getText(self, '修改姓名', '请输入新的姓名:', QLineEdit.Normal)
        if ok and new_name:
            self.table_widget.setItem(current_row, 0, QTableWidgetItem(new_name))
    else:
        QMessageBox.warning(self, '警告', '请先选择一个学生!')

解析

  • add_student函数会在表格的最后添加一行。
  • delete_student函数会删除当前选中的行。
  • modify_student函数会修改当前选中的行的数据。
第四步:运行程序

最后,我们需要创建一个QApplication对象,并创建和显示我们的主窗口:

app = QApplication(sys.argv)
table = StudentInfoSystem()
sys.exit(app.exec_())

运行程序:

运行上述代码后,你将看到一个窗口,可以添加、删除和修改学生信息。

效果图:

完整代码

import sys
import os
from PyQt5.QtWidgets import QApplication, QMainWindow, QVBoxLayout, QWidget, QLabel, QPushButton, QFileDialog, QLineEdit, QListWidget

class FileSearchApp(QMainWindow):
    def __init__(self):
        super().__init__()

        self.setWindowTitle("文件查询工具")
        self.setGeometry(100, 100, 600, 400)

        # 创建主窗口部件
        self.central_widget = QWidget()
        self.setCentralWidget(self.central_widget)

        # 创建布局
        self.layout = QVBoxLayout()
        self.central_widget.setLayout(self.layout)

        # 创建标签和按钮
        self.dir_label = QLabel("选择目录:")
        self.layout.addWidget(self.dir_label)

        self.dir_button = QPushButton("选择目录")
        self.dir_button.clicked.connect(self.select_directory)
        self.layout.addWidget(self.dir_button)

        self.search_label = QLabel("输入文件名:")
        self.layout.addWidget(self.search_label)

        self.search_input = QLineEdit()
        self.layout.addWidget(self.search_input)

        self.search_button = QPushButton("搜索")
        self.search_button.clicked.connect(self.search_files)
        self.layout.addWidget(self.search_button)

        self.result_list = QListWidget()
        self.layout.addWidget(self.result_list)

    def select_directory(self):
        directory = QFileDialog.getExistingDirectory(self, "选择目录")
        if directory:
            self.dir_label.setText(f"选择目录: {directory}")
            self.directory = directory

    def search_files(self):
        self.result_list.clear()
        search_term = self.search_input.text()
        if hasattr(self, 'directory') and search_term:
            for root, dirs, files in os.walk(self.directory):
                for file in files:
                    if search_term in file:
                        self.result_list.addItem(os.path.join(root, file))

if __name__ == "__main__":
    app = QApplication(sys.argv)
    main_window = FileSearchApp()
    main_window.show()
    sys.exit(app.exec_())

代码解析

  1. 导入库:我们导入了 sysos 和 PyQt5 库。
  2. 创建主窗口:我们定义了一个 FileSearchApp 类,继承自 QMainWindow,并在其构造函数中设置窗口标题和大小。
  3. 布局和部件:我们创建了一个主窗口部件 central_widget,并设置了一个垂直布局 QVBoxLayout。在布局中添加了标签、按钮、输入框和列表框。
  4. 选择目录select_directory 方法使用 QFileDialog 让用户选择一个目录,并显示在标签上。
  5. 搜索文件search_files 方法遍历选定目录中的所有文件,如果文件名包含搜索关键词,则将其路径添加到结果列表中。

    爬虫项目推荐

    其他项目推荐

扩展

你可以进一步扩展这个项目,增加更多的功能和改进,例如:

  1. 数据持久化:将学生信息保存到文件或数据库中,以便在程序关闭后仍能保留数据。
  2. 搜索功能:添加一个搜索框,允许用户根据姓名或其他字段搜索学生信息。
  3. 数据验证:在添加或修改学生信息时,进行数据验证,确保输入的数据格式正确。
  4. 界面美化:使用QSS(Qt Style Sheets)或其他方法美化界面,使其更加美观和用户友好。
  5. 多语言支持:添加多语言支持,使程序能够适应不同语言的用户。

希望这个项目对你有所帮助!继续探索和学习,祝你在编程的旅程中取得更多的成果!🚀

说明

在这篇博客中,我们使用Python的PyQt5库创建了一个简单的学生信息系统。这个系统包含一个表格来显示学生的信息,以及几个按钮来添加、删除和修改学生信息。

主要步骤:
  1. 导入必要的模块:包括QApplication、QMainWindow、QTableWidget、QTableWidgetItem、QVBoxLayout、QPushButton、QWidget、QInputDialog、QLineEdit和QMessageBox。
  2. 创建主窗口类:定义一个名为StudentInfoSystem的类,继承自QMainWindow。创建表格并设置列数和行数,添加模拟数据,创建按钮并连接到相应的槽函数。
  3. 创建槽函数:定义添加、删除和修改学生信息的函数。
  4. 运行程序:创建QApplication对象,并创建和显示主窗口。

扩展

你可以进一步扩展这个项目,增加更多的功能和改进,例如:

  1. 数据持久化:将学生信息保存到文件或数据库中,以便在程序关闭后仍能保留数据。
  2. 搜索功能:添加一个搜索框,允许用户根据姓名或其他字段搜索学生信息。
  3. 数据验证:在添加或修改学生信息时,进行数据验证,确保输入的数据格式正确。
  4. 界面美化:使用QSS(Qt Style Sheets)或其他方法美化界面,使其更加美观和用户友好。
  5. 多语言支持:添加多语言支持,使程序能够适应不同语言的用户。

希望这个项目对你有所帮助!继续探索和学习,祝你在编程的旅程中取得更多的成果!🚀

总结

通过这个项目,你学习了如何使用Python和PyQt5创建一个简单的学生信息系统,并实现了添加、删除和修改学生信息的功能。

 结论

通过这个项目,你学习了如何使用Python和PyQt5创建一个简单的学生信息系统,并实现了添加、删除和修改学生信息的功能。希望这个项目对你有所帮助!继续探索和学习,祝你在编程的旅程中取得更多的成果!欢迎在评论区留言。继续探索和学习,祝你在深度学习的旅程中取得更多的成果!🚀


希望这个博客对你有所帮助!如果你有任何问题需要进一步的指导,请随时提问。继续加油! 🚀

  • 8
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

LIY若依

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值