本
文
摘
要
相关文件
有很多资源可以领取的哟!!
导语
刷抖音的时候发现一个老师在用的课堂点名系统。用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为了和UI界面的主线程分离开来,我们采用的还是QThread多线程的方式来实现随机点名模块的。这样做的目的是为了防止主线程阻塞,下面是子线程的实现部分。
class WorkThread(QThread): trigger = pyqtSignal(str) finished = pyqtSignal(bool) def __init__(self, parent=None): super(WorkThread, self).__init__(parent) self.parent = parent self.working = True def __del__(self): self.working = False self.wait() def run(self): data_list = self.parent.data_list if len(data_list) >= 1: ran = random.randint(20, 40) print(遍历次数:, ran) for a in range(ran): name = random.choice(data_list) self.trigger.emit(name) print(name) time.sleep(0.6) self.finished.emit(True) else: self.trigger.emit(无数据)UI 界面的实现部分也比较常规,下面主要实现部分的代码块。
class ClassCollSystem(QWidget): def __init__(self): super(ClassCollSystem, self).__init__() self.data_list = [] self.init_ui() def init_ui(self): 子线程调用 self.thread_ = WorkThread(self) self.thread_.trigger.connect(self.set_namPython 集中营]) 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)效果展示
最后,将主页面加入主体循环直接运行可以了。
完整源代码获取方式,公众号内回复"课堂点名系统",直接下载就可以了。
欢迎大家的关注和支持哟
更多课堂点名小程序有哪些,课堂点名小程序叫什么相关信息请关注本站,本文仅仅做为展示!