前言
咳咳,今天中午吃什么啊,今天晚上吃啥,emm夜宵吃啥
不知道你們每天有沒(méi)有問(wèn)過(guò)這些問(wèn)些問(wèn)題,我基本上天天問(wèn),問(wèn)完后想吃這個(gè)又想吃那個(gè),糾結(jié)的要命,還不如搞個(gè)隨機(jī)食物生成器
有些朋友就說(shuō)了,這種東西網(wǎng)上一搜一大把,何必自己弄,但是網(wǎng)上搜的,隨機(jī)出來(lái)的食物不一定是自己喜歡吃的呀,自己做的話,還能自定義食物
那咱話不多說(shuō),直接開(kāi)始吧,當(dāng)然也可以看看最后的效果圖 ??
效果
吃啥吃啥 吃椰子雞哈哈哈哈
代碼
模塊準(zhǔn)備
需要源碼的看效果圖上數(shù)字,或者點(diǎn)擊文章末尾名片~
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
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('無(wú)數(shù)據(jù)')
子線程調(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('源碼自取君羊309488165 ')
self.setWindowIcon(QIcon('隨機(jī)食物.ico'))
self.setFixedSize(500, 350)
喜愛(ài)食物布局
vbox_name = QVBoxLayout()
self.current_name = QLabel()
self.current_name.setText('隨機(jī)挑選')
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)
開(kāi)始信息布局
vbox_start = QVBoxLayout()
self.start_btn = QPushButton()
self.start_btn.setText('開(kāi)始挑選')
self.start_btn.setFixedSize(250, 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('源碼自取君羊309488165')
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() == '開(kāi)始挑選':
self.thread_.start()
else:
self.start_btn.setText('開(kāi)始挑選')
def set_name(self, name):
self.current_name.setText(name)
def finished(self, finished):
if finished is True:
self.start_btn.setText('今天就吃這個(gè)了')
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)) + ']條食物信息')
最后
今天的這個(gè)食物生成器分享到這里就結(jié)束啦,其實(shí)這個(gè)用處很大的,自己也可以改成其他的,就看你們自己想改成什么啦文章來(lái)源:http://www.zghlxwxcb.cn/news/detail-519627.html
剛開(kāi)始接觸Python的寶子,有什么不懂的都可以私信我哦
我還準(zhǔn)備了大量的免費(fèi)視頻教程,PDF電子書(shū)籍,以及源代碼!直接在文末名片自取即可哦!文章來(lái)源地址http://www.zghlxwxcb.cn/news/detail-519627.html
到了這里,關(guān)于今天吃什么?我直接用Python制作隨機(jī)食物生成器的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!