前言

嗨喽~大家好呀,这里是魔王呐 ❤ ~!

在某些难以抉择得时候,我们经常要用外力来帮助我们做出选择

比如,课堂随机点名或面对活动需要人上台表演时等等场景

这个时候,有一个随机点名系统就非常好啦,毕竟运气得事~

都是天意,哈哈哈哈哈哈哈哈哈

效果展示

导入后,这里就显示你导入了多少人员信息

点击开始点名后,会随机从导入名字里挑选一位幸运儿~

好啦~效果大概就是这样啦,下面我们来看看代码吧

代码展示

导入模块

from PyQt5.QtWidgets import *
from PyQt5.QtGui import *
from PyQt5.QtCore import *from qdarkstyle import load_stylesheet_pyqt5import os
import sys
import time
import random

里面有第三方模块哦~是需要大家自己安装一下得哈

模块安装方法

  1. win + R 输入 cmd 点击确定, 输入安装命令 pip install 模块名 (pip install requests) 回车

  2. 在pycharm中点击Terminal(终端) 输入安装命令

class WorkThread(QThread):trigger = pyqtSignal(str)finished = pyqtSignal(bool)def __init__(self, parent=None):super(WorkThread, self).__init__(parent)self.parent = parentself.working = Truedef __del__(self):self.working = Falseself.wait()def run(self):data_list = self.parent.data_listif 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('无数据')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('课堂点名系统  更多资源可加Q群: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('信息提示 | 更多资源可加Q群: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)) + ']条人员信息')
    '''运行'''
if __name__ == '__main__':app = QApplication(sys.argv)app.setStyleSheet(load_stylesheet_pyqt5())main = ClassCollSystem()main.show()sys.exit(app.exec_())

推荐往期文章

python带你制作随机点名系统,超级简单相关推荐

  1. 教师节我用Python做了个学生点名系统送给老师当礼物,这回毕业稳了

    今年教师节前夕,我特意用Python做了个学生点名系统,非常好用,送给各科老师.辅导员当节日礼物,老师们都喜滋滋,说平常逃课就原谅我了,我心想,这次毕业应该不是问题了~ 本文背景 根据我的调查,现在的 ...

  2. 随机点名系统——html初学实战

    一.实验目的 编写随机点名程序(越不来上课的人,被点中的概率越高,实现抽查.预警等功能) 二.算法设计与结果预览 选择开发语言: C/C++ 不太适合,由于我的想法是最终要做出一个比较拿的出手的图形界 ...

  3. java 小程序之随机点名系统

    package javaSE.第二周.day08; /*  * 难度:编写一个随机点名系统,  * 两个功能,一个是抽取学员回答问题,一个是记录学员被命中的次数  */ public class Ra ...

  4. 自动点名系统c语言,用C语言编写一个随机点名系统

    /*编写一个随机点名系统,运行该系统后,按空格键可以显示出一名同学,以前被选中的同学,将不会再次被选中*/ #include /*standard input & output*/ #incl ...

  5. 用JS实现一个随机点名系统(五)

    用JS实现一个随机点名系统 每次上课前10分钟,老师都会叫我们回答问题,奈何每次都是点学号,好像每次我都能中奖,我直接跟老师提议,老师,我用来JS来帮你写个随机点名的系统吧!这样就不会每次都 抽到我了 ...

  6. 以txt为数据源的随机点名系统

    入门小白一枚,看了很多相关的内容才写出了这个系统,但还有一点的缺陷. 开始的解题思路是:直接通过IO流直接对文本进行操作,但是增删改的实现实在是太麻烦了,于是就推翻重来用了数组的读出写入的方式,进行相 ...

  7. 【微信小程序】随机点名系统(点击开始滚动名字点击结束按钮结束滚动)

    [微信小程序]随机点名系统(点击开始滚动名字点击结束按钮结束滚动) 1.效果图: 2.js代码 {Page({data:{condition: Math.floor(Math.random()*7+1 ...

  8. 我写了个随机点名系统,非常好用~ 我给它取名叫做——随机点名系统

    快开学了吧?作为课代表或者班长的你肯定需要一个随机点名系统.所以我做了一个可以通过导入Excel录入学生信息的随机点名系统.真的方便好用!!! 一.如何使用 点名系统的使用 和 把大象放进冰箱的步骤类 ...

  9. 从Excel表导入数据制作随机点名的网页html

    从Excel表导入数据制作随机点名的网页html 表格素材 ctrl + shift + 向下的箭头 == 全选 建一个txt文件,把数据粘贴过来 三种方法换行改为空格 使用Note

最新文章

  1. 如何在Windows上做Python开发?微软出了官方教程(附链接)
  2. 把两个文件捆绑压缩成一个文件命令
  3. ndk error: malloc was not declared in this scope
  4. C什么k什么_cssci跟c刊有什么区别
  5. 2021-10-21 二叉堆 恋上数据结构笔记
  6. [scala-spark]12. RDD行动操作
  7. PDF 与 Word互转工具。 在线的 和安装软件
  8. numpy 中的nan和常用的统计方法
  9. 《艾恩ASP文件上传类》开发和使用总结
  10. python 京东签到_Python实战—京东用户行为分析
  11. c语言1至100的累乘求和,c语言 累加累乘课件.ppt
  12. 「视频」PISCES要先派机器人去外太空,帮人类建立另一个家园?
  13. python中response是什么意思_对python中各个response的使用说明
  14. QUOTED_IDENTIFIER选项设置不正确
  15. 循环调用scrapy框架出现的问题:twisted.internet.error.ReactorNotRestartable,解决方法
  16. 【webrtc】视频特效的添加(15)
  17. 【C语言】图像处理-揭秘电影特效,随心所欲,合成图像
  18. 导出CSV后,时间字段无法自动识别-0xEF,0xBB,0xBF
  19. 华为网络工程师必备技术汇总
  20. ManualResetEvent使用

热门文章

  1. 接口规范,我可懂了!
  2. 思博伦SpirentTestCenter - RFC2889之MAC地址表容量测试 -双极未来
  3. 创建型设计模模式---建造者模式
  4. 务实了,才能点亮生活
  5. 实现海康监控视频播放(实时预览)(抓拍,录像,对讲等功能)
  6. 虚拟机VirtualBox安装windows操作系统(图文教程)
  7. 5种方法计算均方位移MSD
  8. dbd mysql db_mysqlhotcopy备份时出现“DBD::mysql::db do faile\问题-huifeideluotuo-ChinaUnix博客...
  9. 区块链投资现状和区块链应用部署的探讨
  10. android运行模拟器时出现Unfortunately xxx has stopped的解决办法(实用)