大佬教程收集整理的这篇文章主要介绍了Python开发抖音同款课堂点名系统,PyQt5写起来很简单,大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
刷抖音的时候发现一个老师在用的课堂点名系统。用PyQt5实现了一下同款,导入学生姓名,测试了一下完美运行。
【阅读全文】
操作效果展示:
完整源代码块还是放在了文章的最后面,有需要直接运行到文末获取下载方式就好了。
使用的时候准备好学生姓名的文件,使用导入数据的按钮直接导入就可以开始点名了。新建一个文本文档,将姓名设置设置好,姓名文件示例如下。
① 200 多本 Python 电子书(和经典的书籍)应该有
② Python标准库资料(最全中文版)
③ 项目源码(四五十个有趣且可靠的练手项目及源码)
④ Python基础入门、爬虫、网络开发、大数据分析方面的视频(适合小白学习)
⑤ Python学习路线图(告别不入流的学习)
Python学习交流Q群101677771
使用系统库或者第三方库都比较常规,这里就不一一介绍了。
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_name)
self.thread_.finished.connect(self.finished)
'''应用初始化信息'''
self.setWindowtitle('课堂点名系统 公众号:[Python 集中营]')
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('信息提示 | 公众号:[Python 集中营]')
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)
def starT_Btn_click(self):
if self.starT_Btn.text().Strip() == '开始点名':
self.thread_.start()
else:
self.starT_Btn.setText('开始点名')
def set_name(self, Name):
self.current_name.setText(Name)
def finished(self, finished):
if finished is True:
self.starT_Btn.setText('就是你了')
def imporT_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开发抖音同款课堂点名系统,PyQt5写起来很简单全部内容,希望文章能够帮你解决Python开发抖音同款课堂点名系统,PyQt5写起来很简单所遇到的程序开发问题。
如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。
本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。