Python开发抖音同款课堂点名系统,PyQt5写起来很简单

刷抖音的时候发现一个老师在用的课堂点名系统。用PyQt5实现了一下同款,导入学生姓名,测试了一下完美运行。

【阅读全文】

操作效果展示:

完整源代码块还是放在了文章的最后面,有需要直接运行到文末获取下载方式就好了。

使用的时候准备好学生姓名的文件,使用导入数据的按钮直接导入就可以开始点名了。新建一个文本文档,将姓名设置设置好,姓名文件示例如下。

干货主要有:

① 200 多本 Python 电子书(和经典的书籍)应该有

② Python标准库资料(最全中文版)

③ 项目源码(四五十个有趣且可靠的练手项目及源码)

④ Python基础入门、爬虫、网络开发、大数据分析方面的视频(适合小白学习)

⑤ Python学习路线图(告别不入流的学习)

全部搞定~私信小编01即可获取完整源代码。

使用系统库或者第三方库都比较常规,这里就不一一介绍了。

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)) + ']条人员信息')

最后,将主页面加入主体循环直接运行可以了。

原文地址:https://www.toutiao.com/article/7063357136616849924/

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐


抖音开通了商品橱窗怎么交保证金?打开手机上的抖音APP,点击创作者服务中心,选择申请带货权限,充值保证金就行了,下面我们就来看看详细的教程。
抖音在哪里关注橱窗呢?让我们一起来看看吧,本篇经验将介绍抖音如何关注橱窗,一共分为四步,以下是详细的说明:抖音怎么只关注橱窗商品不关注主播“那可以关注该店铺即可,当然,关注主播更容易找到橱窗”
抖音现在已经是人尽皆知的短视频平台,无论男女老少随处可见的用手机观看抖音短视频,但是有些情况我们没办法用手机,但是又想看抖音要怎么办呢?下面小编教大家怎么用电脑查看抖音吧!
抖音怎样开启同步粉丝数量?抖音中绑定第三方账号后需要粉丝数量同步到第三方的账号是怎样设置,比如今日头条、西瓜视频等,详细请看下文介绍。抖音同步粉丝数量是什么意思
大家最近应该都知道了,抖音小店也可以用个人身份证来开店了。 但是很多人搞不清楚,抖音小店个人店铺和普通个体店到底有什么区别,抖音小店个人店铺有什么优劣势?
近年来,随着抖音平台影响力的不断增强,越来越多的品牌和商家选择入驻抖音直播卖货或者是带货,抖音平台也成为酒类销售的新渠道之一。很多商家会看到自己的同行,在抖音里直播卖自己品牌的酒水,可以正常的上架销售
白酒品牌入驻抖音是否报白?白酒品牌在入驻抖音的时候除了准备好认证还得解决报白问题,如果没有报白商家就随意进行产品销售是会受到处罚的,下面来跟着我们看看白酒当中的报白情况吧。一、白酒品牌入驻抖音是否报白
如果商家搞不清白酒报白是什么意思,那么没有报白就不能在抖音正常卖货,因为商家会发现白酒等特殊品类总是被警告甚至禁止不报白。为了避免这种情况,他们必须知道如何报白。白酒报白是什么意思?
抖音账号白酒报白怎么操作? 白酒同样也是酒类当中的一员得报白才能在抖音当中上架销售,如果不符合酒类目报白标准和操作流程就会导致报白失败,下面来听专业人员是怎么说明的吧。抖音账号白酒报白怎么操作?具体报白
很多想在抖音上卖白酒的商家,不懂如何才能够通过抖音报白得到上架资格,今天小编分享这个关于抖音账号白酒报白怎么操作 具体白酒报白条件说明,希望能帮到你。抖音账号白酒报白的具体操作步骤如下:在报白环节中,需
很多人在闲暇的时候,都会打开抖音APP去刷刷视频,也有一些人喜欢观看抖音当中的主播在直播,那么如何清理抖音APP缓存呢?具体清理方法如下。抖音APP缓存清理操作步骤
抖音找红包分四亿666红包需要拉多少人?2023抖音温暖中国年活动已经正式上线了,本次新春活动抖音为大家带来了多种红包福利玩法,“找红包分四亿”就是其中之一,而大家想要获得更多的红包也是需要找人来为自己助力的
抖音贴贴卡怎么获得?最近,抖音集卡主题活动的人气也超级强,我们也非常关注抖音集卡中的一些贴纸和其他道具卡。如何获得抖音视频贴纸?
抖音的福袋不可以内定。想要抢到抖音福袋完全是凭运气,大家可以多在直播间停留一段时间,然后多尝试几次。可以去一些小型直播间抢,直播间人数较少,大家可以很轻松的抢到。
抖音极速版是字节跳动旗下开发的一款短视频软件,抖音极速版最大的一个特点就是看视频可赚钱,而且真的可以赚不少,在注册后有一项填写抖音极速版邀请码的选项,很多朋友不知道抖音极速版邀请码是什么需要怎么填,这里小编就把【抖音极速版邀请码】...
抖音极速版邀请码怎么填写?最新首选码8315981585分享,抖音极速版是一个短视频很丰富的软件,这款软件上每日都有丰富的短视频服务可以使用,用户可以在这个平台上搜索自己想要的内容,每日都有相关的内容推荐,极速版的抖音浏览起来会更加的方便和丰富,在使用这个版本的时候,用户还可以获得...
      有很多朋友还不会使用抖音白色闪屏特效制作,所以下面小编就讲解了使用抖音白色闪屏特效制作的操作过程,来下文看一看吧。
      大家知道抖音如何先快后慢动作的视频吗?下文小编就带来了在抖音先快后慢动作的视频的操作教程,一起来看看吧!
      很多网友还不知道抖音设置错落三屏特效的操作,下面提供了抖音设置错落三屏特效的操作教程,来跟着小编一起学习吧!
      很多网友还不知道抖音添加胡子特效的操作,下面提供了抖音添加胡子特效的操作教程,来跟着小编一起学习吧!