最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Python輕松寫個(gè)課堂隨機(jī)點(diǎn)名系統(tǒng)

 更新時(shí)間:2023年01月03日 11:25:14   作者:輕松學(xué)Python  
現(xiàn)在的學(xué)生大部分都很積極,會(huì)主動(dòng)舉手回答問題。但是,也會(huì)遇到一些不好的情況,比如年級(jí)越高主動(dòng)舉手的人越少,所以本文寫了一個(gè)隨機(jī)的學(xué)生點(diǎn)名系統(tǒng)可以幫老師解決這些問題

起因

剛上大學(xué)的表弟問我,大學(xué)準(zhǔn)備好好玩玩,問我有沒有什么不掛科的秘訣。

于是我連夜給表弟寫了一個(gè)課堂點(diǎn)名系統(tǒng),讓他給每個(gè)任課老師都送一遍,方便老師就是方便自己,嘿嘿~

準(zhǔn)備工作

首先我們需要準(zhǔn)備好點(diǎn)名的姓名文件,使用的時(shí)候?qū)脒M(jìn)去就可以開始點(diǎn)名了。

新建一個(gè)文本文檔,將姓名設(shè)置設(shè)置好,如下:

使用系統(tǒng)庫和第三方庫都比較常規(guī)

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

效果展示

恭喜麻辣香鍋喜提點(diǎn)名,盧姥爺不甘寂寞,出來兩次都沒點(diǎn)中,看來雀氏涼了~

代碼實(shí)戰(zhàn)

點(diǎn)名功能實(shí)現(xiàn)

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('遍歷次數(shù):', 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('無數(shù)據(jù)')

頁面布局主要代碼

class ClassCollSystem(QWidget):
    def __init__(self):
        super(ClassCollSystem, self).__init__()
        self.data_list = []
        self.init_ui()
    def init_ui(self):
        '''子線程調(diào)用'''
        self.thread_ = WorkThread(self)
        self.thread_.trigger.connect(self.set_name)
        self.thread_.finished.connect(self.finished)
        '''應(yīng)用初始化信息'''
        self.setWindowTitle('源碼自取君羊708525271 ')
        self.setWindowIcon(QIcon('課堂點(diǎn)名.ico'))
        self.setFixedSize(500, 350)
        '''姓名信息布局'''
        vbox_name = QVBoxLayout()
        self.current_name = QLabel()
        self.current_name.setText('隨機(jī)點(diǎn)名啦')
        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('開始點(diǎn)名')
        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)
        '''數(shù)據(jù)信息布局'''
        vbox_data = QHBoxLayout()
        self.message = QLabel()
        self.message.setText('源碼自取君羊708525271')
        self.message.setStyleSheet(
            'font-size:12px;')
        self.import_btn = QPushButton()
        self.import_btn.setText('導(dǎo)入數(shù)據(jù)')
        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() == '開始點(diǎn)名':
            self.thread_.start()
        else:
            self.start_btn.setText('開始點(diǎn)名')
    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('信息提示 | 成功導(dǎo)入[' + str(len(self.data_list)) + ']條人員信息')

到此這篇關(guān)于Python輕松寫個(gè)課堂隨機(jī)點(diǎn)名系統(tǒng)的文章就介紹到這了,更多相關(guān)Python課堂點(diǎn)名系統(tǒng)內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • python實(shí)現(xiàn)圖片上添加圖片

    python實(shí)現(xiàn)圖片上添加圖片

    這篇文章主要為大家詳細(xì)介紹了python實(shí)現(xiàn)圖片上添加圖片,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2019-11-11
  • Python常見文件操作的函數(shù)示例代碼

    Python常見文件操作的函數(shù)示例代碼

    Python常見文件操作的函數(shù)示例代碼,學(xué)習(xí)python的朋友可以參考下。
    2011-11-11
  • 使用Python隨機(jī)生成數(shù)據(jù)的方法

    使用Python隨機(jī)生成數(shù)據(jù)的方法

    這篇文章主要介紹了使用Python隨機(jī)生成數(shù)據(jù)的方法,在日常開發(fā)中竟然會(huì)遇到需要測(cè)試大量數(shù)據(jù)的地方,那么隨機(jī)生成數(shù)據(jù)就可以有效的加快我們的效率,通過Python_Faker生成測(cè)試數(shù)據(jù)需要安裝Faker包,需要的朋友可以參考下
    2023-10-10
  • Python3數(shù)據(jù)庫操作包pymysql的操作方法

    Python3數(shù)據(jù)庫操作包pymysql的操作方法

    這篇文章主要介紹了Python3數(shù)據(jù)庫操作包pymysql的操作方法,文章通過實(shí)例代碼相結(jié)合給大家介紹的非常詳細(xì),需要的朋友可以參考下
    2018-07-07
  • Python入門教程之變量與數(shù)據(jù)類型

    Python入門教程之變量與數(shù)據(jù)類型

    這篇文章主要介紹了Python入門教程之變量與數(shù)據(jù)類型的相關(guān)知識(shí),文中給大家提到了變量的基本概念和數(shù)據(jù)類型的相關(guān)實(shí)例代碼,需要的朋友可以參考下
    2022-02-02
  • python?matplotlib繪畫十一種常見數(shù)據(jù)分析圖

    python?matplotlib繪畫十一種常見數(shù)據(jù)分析圖

    這篇文章主要介紹了python?matplotlib繪畫十一種常見數(shù)據(jù)分析圖,文章主要繪制折線圖、散點(diǎn)圖、直方圖、餅圖等需要的小伙伴可以參考一下文章具體內(nèi)容
    2022-06-06
  • Python Pickling 和 Unpickling 的區(qū)別

    Python Pickling 和 Unpickling 的區(qū)別

    Python中的Pickling和Unpickling是與數(shù)據(jù)序列化和反序列化相關(guān)的重要概念,本文主要介紹了Python Pickling和Unpickling的區(qū)別,具有一定的參考價(jià)值,感興趣的可以了解一下
    2023-11-11
  • Python編程-封裝,繼承與多態(tài)

    Python編程-封裝,繼承與多態(tài)

    這篇文章主要介紹了Python編程-封裝,繼承與多態(tài),文章主要目的解如何利用封裝保護(hù)屬性、掌握單繼承和多繼承、會(huì)重寫和調(diào)用父類方法
    理解多態(tài)的使用等相關(guān)介紹,需要的朋友可以參考一下
    2022-01-01
  • Python+selenium破解拼圖驗(yàn)證碼的腳本

    Python+selenium破解拼圖驗(yàn)證碼的腳本

    很多網(wǎng)站在登錄或者注冊(cè)時(shí)都會(huì)遇到拼圖驗(yàn)證碼,這種拼圖驗(yàn)證碼實(shí)際上是多個(gè)小碎片經(jīng)過重新組合成的一張整體。本文將和大家分享一個(gè)基于Python selenium的破解拼圖驗(yàn)證碼的腳本,需要的可以參考一下
    2022-02-02
  • Python中11種NumPy高級(jí)操作總結(jié)

    Python中11種NumPy高級(jí)操作總結(jié)

    熬夜整了了11種Numpy的高級(jí)操作,每一種都有參數(shù)解釋與小例子輔助說明。文中的示例代碼講解詳細(xì),感興趣的小伙伴快跟隨小編一起學(xué)習(xí)一下吧
    2022-05-05

最新評(píng)論

辉南县| 成安县| 赫章县| 格尔木市| 临沧市| 新丰县| 全椒县| 阳高县| 芜湖县| 林周县| 获嘉县| 威信县| 江永县| 宿迁市| 上杭县| 嵊泗县| 察哈| 呈贡县| 通江县| 六盘水市| 醴陵市| 津南区| 宜春市| 新民市| 大悟县| 四会市| 嘉义县| 临沂市| 淳化县| 房山区| 黄浦区| 连江县| 弥勒县| 瑞丽市| 昭平县| 弋阳县| 静安区| 通化市| 湘乡市| 闵行区| 广平县|