当前位置: 首页 > news >正文

python开发幸运水果抽奖大转盘

概述

当我女朋友跟我说要吃水果,又不知道吃啥水果时候,她以为难为到我了,有啥事难为到程序员的呢! 今天用python利用第三方tkinter+threading+time库开发一个幸运水果抽奖大转盘!抽到啥吃啥

详细

老规矩!咱们先看看效果!

准备工作

开发过程中使用的工具
Visual Studio Code - Insiders
pycharm

这次咱们使用了Python第三方模块中三个tkinter+threading+time模块、可通过Windows下载方法、cmd命令pip instal

    import tkinterimport threadingimport time

一、先利用tkinter模块设定一个初始化对象,窗口大小就设个600*600

        def __init__(self):self.root = tkinter.Tk()self.root.title('水果幸运大转盘')self.root.minsize(600, 600)self.root['bg'] = 'cyan'

在设置一个布局

    self.pack_labels()

创建一个列表,把所有水果标签组件放进去

    self.label_lists = [self.label11, self.label12, self.label13, self.label14, self.label24, self.label34, self.label44, self.label43, self.label42, self.label41,self.label31, self.label21]
初始化开始循环状态的值self.isrotate = False设置是否终止转盘的值self.stop_run_sign = False设置初始化列表索引值self.i = 0

二、咱在设置一下抽奖布局,创建pack_labels函数

1、设置图片

    设置抽奖程序布局def pack_labels(self):#设置图片self.bm1 = tkinter.PhotoImage(file='./苹果.gif')self.label11 = tkinter.Label(self.root,text='苹果', bg='white',image = self.bm1)self.label11.place(relx=0.08, rely=0.08, relwidth=0.15, relheight=0.15)设置一下摆放开始/停止按钮组件self.btn1 = tkinter.Button(self.root,text='Start', bg='green', font=('黑体', 20), command=self.new_threading)self.btn1.place(relx=0.26, rely=0.40, relwidth=0.2, relheight=0.15)self.btn2 = tkinter.Button(self.root,text='Stop', bg='red', font=('黑体', 20), command=self.stop)self.btn2.place(relx=0.54, rely=0.40, relwidth=0.2, relheight=0.15)

三、新建个start_run函数

1、判断循环是否开始

    if self.isrotate == True:#已经开始,则不再进行新的循环

2、使用while 循环遍历label_lists列表,依次将label变为红色

    while True:#判断循环开始或是停止if self.stop_run_sign:#若是按下停止按钮,退出当前函数returntry:# 设置时间间隔time.sleep(0.05)# 将所有组件变成白色的for label in self.label_lists:label['bg'] = 'white'# 将当前数值对应的组件变色self.label_lists[self.i]['bg'] = 'red'# 变量+1self.i += 1# 如果i大于最大索引,将i值设置为0if self.i == len(self.label_lists):self.i = 0

四、在新建一个线程的函数

1、设置转盘停止状态的值为False

    self.stop_run_sign = False

2、建立新的线程

    new = threading.Thread(target=self.start_run)

3、开始运行新的线程

    new.start()

4、设置循环开始的值

     self.isrotate = True

五、新建一个停止转盘的方法

1、设置停止转盘值self.stop_run_sign = True2、判断循环开始的状态值if self.isrotate == False:#弹出未开始点击结束的提示信息result = tkinter.messagebox.askokcancel(title = '提示框',message = '您还没有开始抽奖,是否开始抽奖?')if result == True:self.new_threading()else:tkinter.messagebox.showinfo(title='提示框', message='您已取消抽奖,欢迎下次使用!')#已开始抽奖,按下结束键else:tkinter.messagebox.showinfo(title='提示信息', message='恭喜您,您抽中了:' + self.label_lists[self.i]['text'])3、最后在设置一下循环状态值self.isrotate = False

相关文章:

python开发幸运水果抽奖大转盘

概述 当我女朋友跟我说要吃水果,又不知道吃啥水果时候,她以为难为到我了,有啥事难为到程序员的呢! 今天用python利用第三方tkinterthreadingtime库开发一个幸运水果抽奖大转盘!抽到啥吃啥 详细 老规矩!咱…...

【CMU15-445 Part-16】Concurrency Control Theory

Part16-Concurrency Control Theory 架构概念 Transcations txn就是通过在数据库系统中执行一系列操作(sql queries)来执行某种更高级的功能(应用程序所执行的功能)。 Transcations in SQL 一个新的事务开始 with BEGIN,txn结束with COMM…...

软件设计模式系列之二十五——访问者模式

访问者模式(Visitor Pattern)是一种强大的行为型设计模式,它允许你在不改变被访问对象的类的前提下,定义新的操作和行为。本文将详细介绍访问者模式,包括其定义、举例说明、结构、实现步骤、Java代码实现、典型应用场景…...

国庆看坚如磐石

坚如磐石上映了,可以在爱奇艺观看。 而博主在使用蓝牙耳机连接电脑的过程中,发现没有蓝牙开启选项,并且在服务的设备管理器中也没有找到,很明显这是缺少驱动导致的,因此便去联想官方网站下载对应的驱动。 这里可以输入…...

代码随想录Day59 | 647. 回文子串 | 516. 最长回文子序列

647. 回文子串 class Solution { public:int countSubstrings(string s) {int sum0;int ns.size();vector<vector<int>> f(n1,vector<int>(n1,0));//表示区间范围[i,j] &#xff08;注意是左闭右闭&#xff09;的子串是否是回文子串。初始值为0.for(int i n…...

为什么InnoDB选择B+树而不是红黑树作为索引结构?

在数据库管理系统中&#xff0c;索引结构的选择对于数据库的性能和效率至关重要。MySQL的InnoDB存储引擎是一个广泛使用的数据库引擎&#xff0c;它选择了B树作为索引结构&#xff0c;而不是像红黑树那样的其他数据结构。本文将探讨为什么InnoDB选择B树&#xff0c;并解释B树与…...

【c++_containers】10分钟带你学会list

前言 链表作为一个像是用“链子”链接起来的容器&#xff0c;在数据的存储等方面极为便捷。虽然单链表单独在实际的应用中没用什么作用&#xff0c;但是当他可以结合其他结构&#xff0c;比如哈希桶之类的。不过今天学习的list其实是一个带头双向链表。 言归正传&#xff0c;让…...

LeetCode 0714. 买卖股票的最佳时机含手续费

【LetMeFly】714.买卖股票的最佳时机含手续费 力扣题目链接&#xff1a;https://leetcode.cn/problems/best-time-to-buy-and-sell-stock-with-transaction-fee/ 给定一个整数数组 prices&#xff0c;其中 prices[i]表示第 i 天的股票价格 &#xff1b;整数 fee 代表了交易股…...

cartographer-(0)-ubuntu(20.04)-环境安装

1.安装 ROS wiki.ros.org 1.1修改镜像源&#xff1a; 到网站上找与操作系统相匹配的镜像源 ubuntu | 镜像站使用帮助 | 清华大学开源软件镜像站 | Tsinghua Open Source Mirror # 默认注释了源码镜像以提高 apt update 速度&#xff0c;如有需要可自行取消注释 deb htt…...

MIT 6.S081学习笔记(第二章)

〇、前言 本文主要完成MIT 6.S081 实验二&#xff1a;system call 一、Using gdb (easy) Question requirements In many cases, print statements will be sufficient to debug your kernel, but sometimes being able to single step through some assembly code or inspe…...

L958. 二叉树的完全性检验 java

从1开始当下标&#xff0c;最后节点下标节点总数&#xff1f;true&#xff1a;false&#xff1b; /*** Definition for a binary tree node.* public class TreeNode {* int val;* TreeNode left;* TreeNode right;* TreeNode() {}* TreeNode(int val) { …...

阿里云对象存储OSS SDK的使用

官方文档 https://help.aliyun.com/zh/oss/developer-reference/java 准备工作 windows安装好JDK&#xff0c;这里使用JDK1.8为例 windows安装好IDEA&#xff0c;这里使用IDEA2022 登录阿里云控制台&#xff0c;通过免费试用OSS或开通OSS 步骤 配置访问凭证 有临时和长期…...

二、互联网技术——网络协议

文章目录 一、OSI与TCP/IP参考模型二、TCP/IP参考模型各层功能三、TCP/IP参考模型与对应协议四、常用协议与功能五、常用协议端口 一、OSI与TCP/IP参考模型 二、TCP/IP参考模型各层功能 三、TCP/IP参考模型与对应协议 例题&#xff1a;TCP/IP模型包含四个层次&#xff0c;由上至…...

初赛错题集

MPEG属于视频文件格式. UNIX,Mac OS属于操作系统. 中国计算机协会成立于&#xff08;&#xff09;年。 A. 1961 B. 1962 C. 1971 D. 1972 Ans:B 五个本质不同的点在没有重边或者自环的情况下&#xff0c;组成不同的无向图的个数是: A. 10 B. 1024 C. 15 D. 120 Ans:B 解析&…...

Java Thread类详解

&#x1f648;作者简介&#xff1a;练习时长两年半的Java up主 &#x1f649;个人主页&#xff1a;程序员老茶 &#x1f64a; ps:点赞&#x1f44d;是免费的&#xff0c;却可以让写博客的作者开兴好久好久&#x1f60e; &#x1f4da;系列专栏&#xff1a;Java全栈&#xff0c;…...

3_使用传统CNN网络训练图像分类模型

使用传统CNN网络训练图像分类模型 1. MNIST 首先,定义一下超参数等 import torch# dataset input_shape = 28 num_classes = 10# hyper batch_size = 64 num_epochs = 5 learning_rate = 1e-3# gpu device = torch.device(cuda...

Java 创建线程的方法

&#x1f648;作者简介&#xff1a;练习时长两年半的Java up主 &#x1f649;个人主页&#xff1a;程序员老茶 &#x1f64a; ps:点赞&#x1f44d;是免费的&#xff0c;却可以让写博客的作者开兴好久好久&#x1f60e; &#x1f4da;系列专栏&#xff1a;Java全栈&#xff0c;…...

基于安卓android微信小程序的旅游app系统

项目介绍 随着人民生活水平的提高,旅游业已经越来越大众化,而旅游业的核心是信息,不论是对旅游管理部门、对旅游企业,或是对旅游者而言,有效的获取旅游信息,都显得特别重要.自助定制游将使旅游相关信息管理工作规范化、信息化、程序化,提供旅游景点、旅游线路,旅游新闻等服务本…...

C++设计模式-单件(Singleton)

目录 C设计模式-单件&#xff08;Singleton&#xff09; 一、意图 二、适用性 三、结构 四、参与者 五、代码 C设计模式-单件&#xff08;Singleton&#xff09; 一、意图 保证一个类仅有一个实例&#xff0c;并提供一个访问它的全局访问点。 二、适用性 当类只能有一…...

想做好接口测试,先把这些概念搞清楚了

接口一般来说有两种&#xff0c;一种是程序内部的接口&#xff0c;一种是系统对外的接口。 系统对外的接口 比如你要从别的网站或服务器上获取资源或信息&#xff0c;别人肯定不会把数据库共享给你&#xff0c;他只能给你提供一个他们写好的方法来获取数据&#xff0c;你引用…...

艾尔登法环黑夜君临修改器2026.5.11最新中文汉化版免费下载 转存后自动更新 (看到请立即转存 资源随时失效)

在《艾尔登法环》的庞大世界观下&#xff0c;一款名为《艾尔登法环&#xff1a;黑夜君临》&#xff08;ELDEN RING NIGHTREIGN&#xff09;的衍生作品于 2025 年正式登场。它并非单纯的续作或大型 DLC&#xff0c;而是一款基于原作设定、专注于多人协作生存与浓缩化 RPG 体验的…...

用1DCNN预测股票价格:一份基于TensorFlow/Keras的保姆级实战代码解析

用1DCNN预测股票价格&#xff1a;从数据预处理到模型优化的全流程实战 金融时间序列预测一直是量化分析领域的核心挑战之一。传统的统计方法如ARIMA在处理非线性关系时表现有限&#xff0c;而深度学习中的一维卷积神经网络(1DCNN)因其捕捉局部特征的能力&#xff0c;在股价预测…...

5步精通:Windows风扇智能控制终极指南

5步精通&#xff1a;Windows风扇智能控制终极指南 【免费下载链接】FanControl.Releases This is the release repository for Fan Control, a highly customizable fan controlling software for Windows. 项目地址: https://gitcode.com/GitHub_Trending/fa/FanControl.Rel…...

eFuse 的核心作用

它触及了设备安全性的核心机制——eFuse。 简而言之:一台已经烧录(blown)了 eFuse 的设备,其安全机制与未烧录 eFuse 的设备有本质区别,你之前在非 eFuse 设备上成功的代码修改(强制 check_key 返回 0)很可能在烧录了 eFuse 的设备上无效。 以下是详细解释: eFuse 的…...

【运算篇】算术与逻辑律令(3):比特的手术刀,镜像翻转与空间缝合

在 4-bit 的逻辑地牢里&#xff0c;如果说算术指令提供了“肌肉”&#xff0c;逻辑指令开启了“感官”&#xff0c;那么接下来我们要聊的&#xff0c;则是这台机器最细腻的形态手术。如果说 AND/OR 是在判定“存在”&#xff0c;那么 NOT 和移位指令&#xff08;SHL/SHR&#x…...

STM32F4上跑FreeType:手把手教你为嵌入式GUI添加矢量字体(附源码)

STM32F4实战&#xff1a;FreeType矢量字体移植与GUI深度优化指南 1. 嵌入式矢量字体技术选型与原理 在资源受限的嵌入式环境中实现矢量字体渲染&#xff0c;本质上是一场内存效率与视觉质量的博弈。FreeType作为行业标准的字体引擎&#xff0c;其核心优势在于采用二次贝塞尔曲…...

哪个降AI软件好?2026年4款主流降AI工具按场景对位横评!

哪个降AI软件好&#xff1f;2026年4款主流降AI工具按场景对位横评&#xff01; 「哪个降 AI 软件好」没有标准答案。学生最常踩的坑是把这个问题简化成「哪款最便宜」或者「哪款最有效」——其实好不好用看你的场景。学校送知网严标准、送维普重灾区、自媒体被判 AI、本科双重问…...

告别调参烦恼:用MATLAB Simulink手把手教你实现直流无刷电机的模糊PID控制

直流无刷电机模糊PID控制实战&#xff1a;从Simulink建模到参数自整定 在工业自动化领域&#xff0c;电机控制算法的优劣直接决定了设备性能的上限。传统PID控制器虽然结构简单&#xff0c;但当面对直流无刷电机这类非线性系统时&#xff0c;工程师往往需要花费大量时间反复调整…...

D3D8to9终极指南:3步让老游戏在现代Windows上完美运行![特殊字符]

D3D8to9终极指南&#xff1a;3步让老游戏在现代Windows上完美运行&#xff01;&#x1f680; 【免费下载链接】d3d8to9 A D3D8 pseudo-driver which converts API calls and bytecode shaders to equivalent D3D9 ones. 项目地址: https://gitcode.com/gh_mirrors/d3/d3d8to9…...

Mac窗口置顶神器Topit:3步解决多窗口遮挡难题,工作效率提升150%

Mac窗口置顶神器Topit&#xff1a;3步解决多窗口遮挡难题&#xff0c;工作效率提升150% 【免费下载链接】Topit Pin any window to the top of your screen / 在Mac上将你的任何窗口强制置顶 项目地址: https://gitcode.com/gh_mirrors/to/Topit 在Mac上进行多任务处理时…...