欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

基于Python實(shí)現(xiàn)隨機(jī)點(diǎn)名系統(tǒng)的示例代碼

 更新時(shí)間:2023年04月07日 10:22:20   作者:Python技術(shù)  
在某些難以抉擇得時(shí)候,我們經(jīng)常要用外力來幫助我們做出選擇,比如,梁山出征方臘前沙場(chǎng)點(diǎn)兵,挑選先鋒的場(chǎng)景。所以本文就來用Python做個(gè)隨機(jī)點(diǎn)名系統(tǒng)吧,需要的可以參考一下

 大家好,我是了不起!

在某些難以抉擇得時(shí)候,我們經(jīng)常要用外力來幫助我們做出選擇

比如,梁山出征方臘前沙場(chǎng)點(diǎn)兵,挑選先鋒的場(chǎng)景

這個(gè)時(shí)候,有一個(gè)隨機(jī)點(diǎn)名系統(tǒng)就非常好啦,畢竟我水泊梁山的名號(hào)~

效果展示

創(chuàng)建一個(gè)這樣的文件夾,然后把要隨機(jī)點(diǎn)名的名字寫在里面

導(dǎo)入后,這里就顯示你導(dǎo)入了多少人員信息

點(diǎn)擊開始點(diǎn)名后,會(huì)隨機(jī)從導(dǎo)入名字里挑選一位幸運(yùn)兒~

效果大概就是這樣,下面我們來看看代碼吧

代碼展示

導(dǎo)入模塊

里面有第三方模塊,需要大家自己安裝一下

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(6,?10)
????????????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()

子線程調(diào)用

????def?init_ui(self):
????????self.thread_?=?WorkThread(self)
????????self.thread_.trigger.connect(self.set_name)
????????self.thread_.finished.connect(self.finished)

應(yīng)用初始化信息

????????self.setWindowTitle('課堂點(diǎn)名系統(tǒng)')
????????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('信息提示')
????????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))?+?']條人員信息')

運(yùn)行

if?__name__?==?'__main__':
????app?=?QApplication(sys.argv)
????app.setStyleSheet(load_stylesheet_pyqt5())
????main?=?ClassCollSystem()
????main.show()
????sys.exit(app.exec_())

到此這篇關(guān)于基于Python實(shí)現(xiàn)隨機(jī)點(diǎn)名系統(tǒng)的示例代碼的文章就介紹到這了,更多相關(guān)Python隨機(jī)點(diǎn)名內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • pandas如何快速去除列名中的特殊符號(hào)

    pandas如何快速去除列名中的特殊符號(hào)

    在使用Pandas處理數(shù)據(jù)時(shí),經(jīng)常需要處理數(shù)據(jù)中的列名column name,有時(shí)候,列名可能包含特殊字符,比如空格、點(diǎn)號(hào)、括號(hào)等,這些特殊字符可能會(huì)導(dǎo)致下一步的代碼出錯(cuò),因此需要將這些特殊字符從列名中刪除,下面先介紹pandas如何去除列名中的特殊符號(hào),感興趣的朋友一起看看吧
    2024-01-01
  • python中turtle庫的簡(jiǎn)單使用教程

    python中turtle庫的簡(jiǎn)單使用教程

    這篇文章主要給大家介紹了關(guān)于python中turtle庫的簡(jiǎn)單使用教程,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2020-11-11
  • python?序列去重并保持原始順序操作

    python?序列去重并保持原始順序操作

    這篇文章主要介紹了python序列去重并保持原始順序操作,文章圍繞了python?序列去重的相關(guān)資料展開詳細(xì)介紹,需要的小伙伴可以參考一下,希望對(duì)你的有所幫助
    2022-03-03
  • Python利用folium實(shí)現(xiàn)地圖可視化

    Python利用folium實(shí)現(xiàn)地圖可視化

    Folium是建立在Python生態(tài)系統(tǒng)的數(shù)據(jù)整理(Datawrangling)能力和Leaflet.js庫的映射能力之上的開源庫。這篇文章主要給大家介紹了關(guān)于如何Python利用folium實(shí)現(xiàn)地圖可視化的相關(guān)資料,需要的朋友可以參考下
    2021-05-05
  • python生成器表達(dá)式和列表解析

    python生成器表達(dá)式和列表解析

    最近在學(xué)習(xí)python的過程中,對(duì)列表解析及生成器表達(dá)式有點(diǎn)疑惑。從表面上看,兩者很相似,只有一點(diǎn)不同:列表解析采用中括號(hào)[]來包含,生成器表達(dá)式采用小括號(hào)()來包含。本文我們就來詳細(xì)看下python生成器表達(dá)式和列表解析
    2016-03-03
  • python中windows鏈接linux執(zhí)行命令并獲取執(zhí)行狀態(tài)的問題小結(jié)

    python中windows鏈接linux執(zhí)行命令并獲取執(zhí)行狀態(tài)的問題小結(jié)

    這篇文章主要介紹了python中windows鏈接linux執(zhí)行命令并獲取執(zhí)行狀態(tài),由于工具是pyqt寫的所以牽扯到用python鏈接linux的問題,這里記錄一下一些碰到的問題,需要的朋友可以參考下
    2022-11-11
  • Python Numpy計(jì)算各類距離的方法

    Python Numpy計(jì)算各類距離的方法

    這篇文章主要介紹了Python Numpy計(jì)算各類距離的方法,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2019-07-07
  • Python使用自定義裝飾器的示例詳解

    Python使用自定義裝飾器的示例詳解

    在Python自動(dòng)化測(cè)試中,可以使用自定義的裝飾器來給測(cè)試方法傳遞測(cè)試數(shù)據(jù)。本文將通過簡(jiǎn)單的示例和大家介紹下具體的使用方法,希望對(duì)大家有所幫助
    2022-11-11
  • Python中os模塊的使用及文件對(duì)象的讀寫詳解

    Python中os模塊的使用及文件對(duì)象的讀寫詳解

    這篇文章主要介紹了Python中os模塊的使用及文件對(duì)象的讀寫詳解,Python?open()?方法用于打開一個(gè)文件,并創(chuàng)建返回文件對(duì)象,在對(duì)文件進(jìn)行處理過程都需要使用到這個(gè)函數(shù),如果該文件無法被打開,會(huì)拋出?OSError,需要的朋友可以參考下
    2023-08-08
  • Python動(dòng)態(tài)加載模塊的3種方法

    Python動(dòng)態(tài)加載模塊的3種方法

    這篇文章主要介紹了Python 動(dòng)態(tài)加載模塊的3種方法,本文分別使用使用系統(tǒng)函數(shù)__import_()、使用imp 模塊、使用exec三種方法實(shí)現(xiàn),需要的朋友可以參考下
    2014-11-11

最新評(píng)論