python制作课堂点名系统,从此老师对我关爱有加
2023-09-14 09:05:35 时间
前言
大家早好、午好、晚好吖 ❤ ~
准备工作
首先我们需要准备好点名的姓名文件,使用的时候导入进去就可以开始点名了。
新建一个文本文档,将姓名设置设置好,如下:
使用系统库和第三方库都比较常规
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
代码展示
点名功能实现
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('无数据')
页面布局主要代码
PS:完整源码如有需要的小伙伴可以加下方的群去找管理员免费领取
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('源码自取君羊261823976 ')
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('源码自取君羊261823976')
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)) + ']条人员信息')
效果展示
恭喜麻辣香锅喜提点名,卢姥爷不甘寂寞,出来两次都没点中,看来雀氏凉了~
尾语 💝
好了,今天的分享就差不多到这里了!
完整代码、更多资源、疑惑解答直接点击下方名片自取即可。
宁外给大家推荐一个好的教程:
【48小时搞定全套教程!你和大佬只有一步之遥【python教程】
有更多建议或问题可以评论区或私信我哦!一起加油努力叭(ง •_•)ง
喜欢就关注一下博主,或点赞收藏评论一下我的文章叭!!!
相关文章
- python常用面试题_Python+Selenium 常见面试题整理[通俗易懂]
- 用Python实时获取steam特惠游戏数据
- 「Python」面向对象封装案例1——小夏爱跑步、案例扩展
- python进阶(7)垃圾回收机制
- python数据可视化分析速成笔记_2-2_布朗运动/几何布朗运动(伊藤过程)实现的demo[通俗易懂]
- Python的正则表达式_python正则表达式例子
- python层次聚类分析_SPSS聚类分析:系统聚类分析[通俗易懂]
- python冒泡排序代码通俗理解_单片机冒泡排序实验报告
- python中if判断语句的用法_Python if判断语句的用法详细介绍[通俗易懂]
- 在Python中实现Excel的VLOOKUP、HLOOKUP、XLOOKUP函数功能
- Python实现智能互动拍照系统(毕设源码)
- 【压缩图片】 python
- 100天精通Python丨黑科技篇 —— 06、Python 修图(滤镜、灰度、裁剪、视觉处理、图像分割、特征提取)
- python-Python与MySQL数据库-使用Python执行MySQL查询
- python-Python与PostgreSQL数据库-PostgreSQL数据库的基本知识(一)
- python-Python与PostgreSQL数据库-使用Python执行PostgreSQL查询(二)
- 监控windows系统的cpu使用情况,python自动重启IIS
- python来实现 运维堡垒机(跳板机)系统
- 在Python中简单调用MySQL(python调用mysql)
- Linux系统下安装Python模块指南(linux安装python模块)
- 在Linux系统中使用Python编程语言(linux中python)
- python算法学习之基数排序实例
- python使用新浪微博api上传图片到微博示例
- linux系统使用python监测网络接口获取网络的输入输出
- python网络编程学习笔记(四):域名系统