Python自制随机食物生成器(食物可自拟)

前言

新年好啊 朋友们

现在年初八都开始上班了 一部分学生也开始上课咯 当然现在还在家躺着的 真羡慕啊

每次不在家吃饭 一出来就要考虑该吃啥 啥都想吃 但是兜里条件有限

所以就只能极限选择咯 为了不再纠结 咱就是直接做个 随机食物挑选器

Python自制随机食物生成器(食物可自拟)_第1张图片

效果

有人就说 这网上一抓一大把 没必要自己做个
emm网上的一些固定的 也不见得是咱自己喜欢吃的 还不如自己拟个表单 导入进去就能开始随机选择了

话不多说 咱就直接看看效果吧

吃啥吃啥 吃椰子鸡哈哈哈哈

代码

模块准备

需要源码的看 效果图左上方数字 ,或者点击文章末尾名片~

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('遍历次数:', 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('无数据')

子线程调用

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

应用初始化信息

self.setWindowTitle('源码自取君羊309488165 ')
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(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)

数据信息布局

vbox_data = QHBoxLayout()
self.message = QLabel()
self.message.setText('源码自取君羊309488165')
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)) + ']条食物信息')

最后

今天的这个食物生成器分享到这里就结束啦,其实这个用处很大的,自己也可以改成其他的,就看你们自己想改成什么啦

视频教程

小圆在这里还给大家推荐个零基础朋友学习的案例教程 有兴趣的可以看看哦 需要源码也可以点击下方名片领取 ~

【Python案例教学】最适合零基础学习的实用案例,手把手带练,让你成为下一个Python大神

Python自制随机食物生成器(食物可自拟)_第2张图片

你可能感兴趣的:(pytho基础,python案例,python,开发语言)