0


当我把用Python做的课堂点名系统献给各科老师后,再也没挂过科

文章目录

起因

刚上大学的表弟问我,大学准备好好玩玩,问我有没有什么不挂科的秘诀。

哎,这可就问对人了,要想不挂科,先把老师贿赂好,当然,咱们说的贿赂不是送钱啥的,这不是侮辱老师吗?

于是我连夜给表弟写了一个课堂点名系统,让他给每个任课老师都送一遍,方便老师就是方便自己,嘿嘿~

准备工作

首先我们需要准备好点名的姓名文件,使用的时候导入进去就可以开始点名了。

新建一个文本文档,将姓名设置设置好,如下:

使用系统库和第三方库都比较常规

from PyQt5.QtWidgets import*from PyQt5.QtGui import*from PyQt5.QtCore import*from qdarkstyle import load_stylesheet_pyqt5

import os
import sys
import time
import random

效果展示

恭喜麻辣香锅喜提点名,卢姥爷不甘寂寞,出来两次都没点中,看来雀氏凉了~

代码实战

点名功能实现

classWorkThread(QThread):
    trigger = pyqtSignal(str)
    finished = pyqtSignal(bool)def__init__(self, parent=None):super(WorkThread, self).__init__(parent)
        self.parent = parent
        self.working =Truedef__del__(self):
        self.working =False
        self.wait()defrun(self):
        data_list = self.parent.data_list
        iflen(data_list)>=1:
            ran = random.randint(20,40)print('遍历次数:', ran)for a inrange(ran):
                name = random.choice(data_list)
                self.trigger.emit(name)print(name)
                time.sleep(0.6)
            self.finished.emit(True)else:
            self.trigger.emit('无数据')

页面布局主要代码

classClassCollSystem(QWidget):def__init__(self):super(ClassCollSystem, self).__init__()
        self.data_list =[]
        self.init_ui()definit_ui(self):'''子线程调用'''
        self.thread_ = WorkThread(self)
        self.thread_.trigger.connect(self.set_name)
        self.thread_.finished.connect(self.finished)'''应用初始化信息'''
        self.setWindowTitle('源码自取君羊708525271 ')
        self.setWindowIcon(QIcon('课堂点名.ico'))
        self.setFixedSize(500,350)'''姓名信息布局'''
        vbox_name = QVBoxLayout()
        self.current_name = QLabel()
        self.current_name.setText('随机点名啦')
        self.current_name.setStyleSheet('font-size:50px;text-align:center;font-weight:bold;font-family:"Microsoft JhengHei";')

        vbox_name.addWidget(self.current_name)
        vbox_name.setAlignment(Qt.AlignCenter)'''开始信息布局'''
        vbox_start = QVBoxLayout()
        self.start_btn = QPushButton()
        self.start_btn.setText('开始点名')
        self.start_btn.setFixedSize(160,50)
        self.start_btn.setStyleSheet('font-size:30px;font-weight:bold;text-align:center;font-family:"Microsoft JhengHei";')
        self.start_btn.clicked.connect(self.start_btn_click)

        vbox_start.addWidget(self.start_btn)
        vbox_start.setAlignment(Qt.AlignCenter)
        vbox_start.addSpacing(80)'''数据信息布局'''
        vbox_data = QHBoxLayout()
        self.message = QLabel()
        self.message.setText('源码自取君羊708525271')
        self.message.setStyleSheet('font-size:12px;')

        self.import_btn = QPushButton()
        self.import_btn.setText('导入数据')
        self.import_btn.setFixedSize(90,25)
        self.import_btn.clicked.connect(self.import_btn_click)

        vbox_data.addWidget(self.message)
        vbox_data.addStretch(1)
        vbox_data.addWidget(self.import_btn)'''整体布局'''
        vbox = QVBoxLayout()
        vbox.addLayout(vbox_name)
        vbox.addLayout(vbox_start)
        vbox.addLayout(vbox_data)

        self.setLayout(vbox)defstart_btn_click(self):if self.start_btn.text().strip()=='开始点名':
            self.thread_.start()else:
            self.start_btn.setText('开始点名')defset_name(self, name):
        self.current_name.setText(name)deffinished(self, finished):if finished isTrue:
            self.start_btn.setText('就是你了')defimport_btn_click(self):file= QFileDialog.getOpenFileName(self,'选择文件', os.getcwd(),'Text File(*.txt)')
        file_path =file[0]print(file_path)
        fl =open(str(file_path),'r', encoding='utf-8')
        self.data_list = fl.read().strip().split('\n')print(self.data_list)
        self.message.setText('信息提示 | 成功导入['+str(len(self.data_list))+']条人员信息')

最后

兄弟们学习python,有时候不知道怎么学,从哪里开始学。掌握了基本的一些语法或者做了两个案例后,不知道下一步怎么走,不知道如何去学习更加高深的知识。

那么对于这些大兄弟们,我准备了大量的免费视频教程,PDF电子书籍,以及本文源代码!
直接在文末名片自取就好了!

好了,今天的分享就到这里结束了,大家快去试试吧。

标签: python 点名系统

本文转载自: https://blog.csdn.net/ooowwq/article/details/128460301
版权归原作者 轻松学Python 所有, 如有侵权,请联系我们删除。

“当我把用Python做的课堂点名系统献给各科老师后,再也没挂过科”的评论:

还没有评论