Python輕松寫個課堂隨機(jī)點(diǎn)名系統(tǒng)
起因
剛上大學(xué)的表弟問我,大學(xué)準(zhǔn)備好好玩玩,問我有沒有什么不掛科的秘訣。
于是我連夜給表弟寫了一個課堂點(diǎn)名系統(tǒng),讓他給每個任課老師都送一遍,方便老師就是方便自己,嘿嘿~
準(zhǔn)備工作
首先我們需要準(zhǔn)備好點(diǎn)名的姓名文件,使用的時候?qū)脒M(jìn)去就可以開始點(diǎn)名了。
新建一個文本文檔,將姓名設(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)中,看來雀氏涼了~
代碼實戰(zhàn)
點(diǎn)名功能實現(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輕松寫個課堂隨機(jī)點(diǎn)名系統(tǒng)的文章就介紹到這了,更多相關(guān)Python課堂點(diǎn)名系統(tǒng)內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
- 基于Python實現(xiàn)簡單的學(xué)生點(diǎn)名系統(tǒng)
- 基于Python編寫一個點(diǎn)名器的示例代碼
- Python寫一個簡單上課點(diǎn)名系統(tǒng)(附源碼)
- python實戰(zhàn)練習(xí)做一個隨機(jī)點(diǎn)名的程序
- Python實現(xiàn)上課點(diǎn)名器系統(tǒng)
- 一起用Python做個上課點(diǎn)名器的制作過程
- python用tkinter實現(xiàn)一個簡易能進(jìn)行隨機(jī)點(diǎn)名的界面
- 基于python tkinter的點(diǎn)名小程序功能的實例代碼
- python寫一個隨機(jī)點(diǎn)名軟件的實例
相關(guān)文章
詳解10個可以快速用Python進(jìn)行數(shù)據(jù)分析的小技巧
這篇文章主要介紹了詳解10個可以快速用Python進(jìn)行數(shù)據(jù)分析的小技巧,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2019-06-06在Tensorflow中查看權(quán)重的實現(xiàn)
今天小編就為大家分享一篇在Tensorflow中查看權(quán)重的實現(xiàn),具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2020-01-01Python3 JSON 數(shù)據(jù)解析及日期和時間小結(jié)
這篇文章主要介紹了Python3 JSON 數(shù)據(jù)解析及日期和時間,本文通過實例代碼給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下2023-02-02基于Tensorflow批量數(shù)據(jù)的輸入實現(xiàn)方式
今天小編就為大家分享一篇基于Tensorflow批量數(shù)據(jù)的輸入實現(xiàn)方式,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2020-02-02