python实现大转盘抽奖效果
作者:max_ez 发布时间:2023-12-16 13:50:30
标签:python,转盘,抽奖
本文实例为大家分享了python实现大转盘抽奖的具体代码,供大家参考,具体内容如下
选择转盘中的某一个方框,来进行抽奖
import tkinter
#导入线程模块
import threading
import time #导入代码的sleep 代码休眠
root = tkinter.Tk()
root.title('大转盘')
root.minsize(300,300)
#摆放按钮
btn1 = tkinter.Button(root,text = '樱桃',bg = 'red')
btn1.place(x = 20,y = 20,width = 50,height = 50)
btn2 = tkinter.Button(root,text = '香蕉',bg = 'white')
btn2.place(x = 90,y = 20,width = 50,height = 50)
btn3 = tkinter.Button(root,text = '苹果',bg = 'white')
btn3.place(x = 160,y = 20,width = 50,height = 50)
btn4 = tkinter.Button(root,text = '西瓜',bg = 'white')
btn4.place(x = 230,y = 20,width = 50,height = 50)
btn5 = tkinter.Button(root,text = '鸭梨',bg = 'white')
btn5.place(x = 230,y = 90,width = 50,height = 50)
btn6 = tkinter.Button(root,text = '榴莲',bg = 'white')
btn6.place(x = 230,y = 160,width = 50,height = 50)
btn7 = tkinter.Button(root,text = '柚子',bg = 'white')
btn7.place(x = 230,y = 230,width = 50,height = 50)
btn8 = tkinter.Button(root,text = '葡萄',bg = 'white')
btn8.place(x = 160,y = 230,width = 50,height = 50)
btn9 = tkinter.Button(root,text = '草莓',bg = 'white')
btn9.place(x = 90,y = 230,width = 50,height = 50)
btn10 = tkinter.Button(root,text = '芒果',bg = 'white')
btn10.place(x = 20,y = 230,width = 50,height = 50)
btn11 = tkinter.Button(root,text = '荔枝',bg = 'white')
btn11.place(x = 20,y = 160,width = 50,height = 50)
btn12 = tkinter.Button(root,text = '甘蔗',bg = 'white')
btn12.place(x = 20,y = 90,width = 50,height = 50)
#将所有选项组成列表
fruitlists = [btn1,btn2,btn3,btn4,btn5,btn6,btn7,btn8,btn9,btn10,btn11,btn12]
#是否开启循环的标志
isloop = False
#是否停止标志
stopsign=False #是否接收到 stop信号
#存储停止id------用于进行stop后的重新启动
stopid=None
def round():
global isloop
global stopid
#判断是否开始循环
if isloop == True:
return
i=1
if isinstance(stopid,int):
i=stopid
while True:
#延时操作
time.sleep(0.2)
#将所有的组件背景变为白色
for x in fruitlists:
x['bg'] = 'white'
#将当前数值对应的组件变色
fruitlists[i]['bg'] = 'red'
#变量+1
i += 1
print('当前i为',i) #当前i,用来追踪当前位置
#如果i大于最大索引直接归零
if i >= len(fruitlists):
i = 0
if stopsign == True:#当停止标志 为真时
isloop=False
stopid =i#赋值stopid
break
def stop1():
global stopsign
if stopsign ==True:#当多接收stop1()函数时 ,直接跳过
return
stopsign=True
#建立一个新线程的函数
def newtask():
global isloop
global stopsign
#建立线程
stopsign=False
#print(stopsign) #打印 点击开始时的stopsign
t = threading.Thread(target = round)
#开启线程运行
t.start()
# 设置循环开始标志
isloop = True
#开始按钮
btn_start = tkinter.Button(root,text = 'start',command = newtask)
btn_start.place(x = 90,y = 125,width = 50,height = 50)
#停止按钮
btn_stop = tkinter.Button(root,text = 'stop',command=stop1)
btn_stop.place(x = 160,y = 125,width = 50,height = 50)
root.mainloop()
效果图:
就是上图这个界面了:
start 开始按钮
stop 结束按钮
来源:https://blog.csdn.net/userez/article/details/78943621


猜你喜欢
- 这个格式是我自创的,经常有人问我为什么,这里做个简单总结:1、分类,一个模块或者同类功能定义为一类定义,每类定义之间用段落隔开。2、分级,每
- 树莓派与arduino串口通信第一步:先设置硬件串口分配给GPIO串口输入sudo raspi-config命令进入树莓派系统配置界面,选择
- 一.环境搭建1.下载安装包访问 Python官网下载地址:https://www.python.org/downloads/下载适合自己系统
- 当我们开始精通编程语言时,我们不仅希望实现最终目标,而且希望使我们的程序高效。在这个教程中,我们将学习一些Ipython的命令,这些命令可以
- 在操作系统的文件中,还存在着一种我们可以自己定义的文件属性。这些属性不是保存在文件内容中,也不是直接可以通过 ls -al 所能看到的内容。
- 大多数情况下,我们使用 webpack来打包单页应用程序,这个时候只需要配置一个入口,一个模板文件,但也不尽是如此,有时候也会碰到多页面的项
- 负责Web编写的前端人员,都清楚可以通过W3验证服务功能,来在线验证自己编写的XHTML代码是否正确,在验证期间,最容易出现的错误往往都是在
- 如下代码会将npy的格式数据读出,并且输出来到控制台:import numpy as np##设置全部数据,不输出省略号 import sy
- 在最近一次项目有一个需求,点击按钮——异步提交——异步响应返回——根据响应返回值新开窗口。这有两个要点:异步响应之前不知道要打开窗口的URL
- 前言之前在使用包括大型文档(商汤科技、百度飞浆)代码的时候都一直使用 pip install -v -e . ,这一命令,但是一直不是很清楚
- python修改图像分辨率大小图像分辨率指图像中存储的信息量,是每英寸图像内有多少个像素点,分辨率的单位为PPI(Pixels Per In
- 现在就摘录一下sql2005联机丛书里的关于这几个数据类型的解释字符数据类型(nchar 长度固定,nvarchar 长度可变)和 Unic
- 今天把Ext.js源码又读了一遍,不过这次比较认真。看完代码,有了不少收获也遇到不少问题。主要总结如下:1、document.execCom
- 3*3卷积核与2*5卷积核对神经元大小的设置#这里kerner_size = 2*5class CONV_NET(torch.nn.Modu
- 本文总结了两种方法来导入opencv与numpy包,第一种是直接在Pycharm中导入两个包,第二种是在官网下载相关文件进行配置。本人比较推
- 本文实例为大家分享了vue简单的图书管理具体代码,供大家参考,具体内容如下<table class="table table
- 本文实例讲述了Python基于Tkinter模块实现的弹球小游戏。分享给大家供大家参考,具体如下:#!usr/bin/python#-*-
- 一、总结apply —— 应用在 dataFrame 上,用于对 row 或者 column 进行计算applymap —— 应用在 dat
- 通用load/write方法手动指定选项Spark SQL的DataFrame接口支持多种数据源的操作。一个DataFrame可以进行RDD
- 大家在写按钮(input、button)的时候会发现在 IE 下:随着字数的增多,两边的间距也会越来越大。在 WIN 的XP 风格下,当字数