python实现大转盘抽奖效果


Posted in Python onJanuary 22, 2019

本文实例为大家分享了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()

效果图:

python实现大转盘抽奖效果

就是上图这个界面了:

start 开始按钮

stop 结束按钮

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Python 相关文章推荐
Python如何抓取天猫商品详细信息及交易记录
Feb 23 Python
Python实现修改IE注册表功能示例
May 10 Python
CentOS下Python3的安装及创建虚拟环境的方法
Nov 28 Python
Python画图高斯分布的示例
Jul 10 Python
python将print输出的信息保留到日志文件中
Sep 27 Python
tensorflow dataset.shuffle、dataset.batch、dataset.repeat顺序区别详解
Jun 03 Python
Python私有属性私有方法应用实例解析
Sep 15 Python
如何在Anaconda中打开python自带idle
Sep 21 Python
python 视频下载神器(you-get)的具体使用
Jan 06 Python
Python基础之数据结构详解
Apr 28 Python
python中的class_static的@classmethod的巧妙用法
Jun 22 Python
浅析python中特殊文件和特殊函数
Feb 24 Python
Python函数返回不定数量的值方法
Jan 22 #Python
python实现转盘效果 python实现轮盘抽奖游戏
Jan 22 #Python
Python Pillow Image Invert
Jan 22 #Python
python 通过类中一个方法获取另一个方法变量的实例
Jan 22 #Python
对Python 获取类的成员变量及临时变量的方法详解
Jan 22 #Python
Python实现深度遍历和广度遍历的方法
Jan 22 #Python
Python遍历文件夹 处理json文件的方法
Jan 22 #Python
You might like
树型结构列出指定目录里所有文件的PHP类
2006/10/09 PHP
为查询结果建立向后/向前按钮
2006/10/09 PHP
PHP的serialize序列化数据以及JSON格式化数据分析
2015/10/10 PHP
PHP设计模式之适配器模式定义与用法详解
2018/04/03 PHP
PHP用swoole+websocket和redis实现web一对一聊天
2019/11/05 PHP
JS中批量给元素绑定事件过程中的相关问题使用闭包解决
2013/04/15 Javascript
js网页实时倒计时精确到秒级
2014/02/10 Javascript
关闭页面window.location事件未执行的原因及解决方法
2014/09/01 Javascript
jQuery实现自定义事件的方法
2015/04/17 Javascript
javascript显式类型转换实例分析
2015/04/25 Javascript
Js和JQuery获取鼠标指针坐标的实现代码分享
2015/05/25 Javascript
jQuery+CSS3文字跑马灯特效的简单实现
2016/06/25 Javascript
轻松掌握JavaScript策略模式
2016/08/25 Javascript
js style.display=block显示布局错乱问题的解决方法
2016/09/21 Javascript
微信小程序 Video API实例详解
2016/10/02 Javascript
Vue按需加载的具体实现
2017/12/02 Javascript
Koa2微信公众号开发之本地开发调试环境搭建
2018/05/16 Javascript
解决Vue axios post请求,后台获取不到数据的问题方法
2018/08/11 Javascript
详解key在Vue列表渲染时究竟起到了什么作用
2019/04/20 Javascript
微信小程序数据统计和错误统计的实现方法
2019/06/26 Javascript
vue项目在webpack2实现移动端字体自适配功能
2020/06/02 Javascript
js+css实现扇形导航效果
2020/08/18 Javascript
python 中split 和 strip的实例详解
2017/07/12 Python
python基础教程项目五之虚拟茶话会
2018/04/02 Python
Django多数据库的实现过程详解
2019/08/01 Python
Matplotlib中%matplotlib inline如何使用
2020/07/28 Python
django跳转页面传参的实现
2020/09/17 Python
详解移动端HTML5页面端去掉input输入框的白色背景和边框(兼容Android和ios)
2016/12/15 HTML / CSS
英国在线潜水商店:Simply Scuba
2019/03/25 全球购物
美国时尚大码女装购物网站:Avenue
2019/05/24 全球购物
德国受欢迎的旅游和休闲网站:lastminute.de
2019/09/23 全球购物
英语专业毕业生自荐信
2013/10/28 职场文书
迟到早退检讨书
2014/02/10 职场文书
四风批评与自我批评范文
2014/10/14 职场文书
如何理解python接口自动化之logging日志模块
2021/06/15 Python
人工智能深度学习OpenAI baselines的使用方法
2022/05/20 Python