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实现类继承实例
Jul 04 Python
python基础教程之基本数据类型和变量声明介绍
Aug 29 Python
详解Python文本操作相关模块
Jun 22 Python
django admin添加数据自动记录user到表中的实现方法
Jan 05 Python
python实现公司年会抽奖程序
Jan 22 Python
Python实现二叉树的常见遍历操作总结【7种方法】
Mar 06 Python
pybind11在Windows下的使用教程
Jul 04 Python
django框架使用views.py的函数对表进行增删改查内容操作详解【models.py中表的创建、views.py中函数的使用,基于对象的跨表查询】
Dec 12 Python
python用WxPython库实现无边框窗体和透明窗体实现方法详解
Feb 21 Python
python实现猜拳游戏
Mar 04 Python
Python爬虫抓取指定网页图片代码实例
Jul 24 Python
python中watchdog文件监控与检测上传功能
Oct 30 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 Memcached应用实现代码
2010/02/08 PHP
解析PHP中的正则表达式以及模式匹配
2013/06/19 PHP
PHP从二维数组得到N层分类树的实现代码
2016/10/11 PHP
thinkphp项目如何自定义微信分享描述内容
2017/02/20 PHP
php实现生成带二维码图片并强制下载功能
2018/02/24 PHP
jQuery$命名冲突怎么办如何解决
2014/01/16 Javascript
动态创建script在IE中缓存js文件时导致编码的解决方法
2014/05/04 Javascript
Jquery焦点与失去焦点示例应用
2014/06/10 Javascript
浅析javascript函数表达式
2016/02/10 Javascript
JavaScript知识点总结(四)之逻辑OR运算符详解
2016/05/31 Javascript
node.js 发布订阅模式的实例
2017/09/10 Javascript
完美解决iview 的select下拉框选项错位的问题
2018/03/02 Javascript
vue-router重定向和路由别名的使用讲解
2019/01/19 Javascript
VuePress 中如何增加用户登录功能
2019/11/29 Javascript
python使用cookie库操保存cookie详解
2014/03/03 Python
python进阶教程之循环对象
2014/08/30 Python
Python安装第三方库的3种方法
2015/06/21 Python
Django模板变量如何传递给外部js调用的方法小结
2017/07/24 Python
python远程连接服务器MySQL数据库
2018/07/02 Python
对django中render()与render_to_response()的区别详解
2018/10/16 Python
对python打乱数据集中X,y标签对的方法详解
2018/12/14 Python
pygame实现飞机大战
2020/03/11 Python
Canvas环形饼图与手势控制的实现代码
2019/11/08 HTML / CSS
美津浓巴西官方网站:Mizuno巴西
2019/07/24 全球购物
Sunglass Hut巴西网上商店:男女太阳镜
2020/10/04 全球购物
小学优秀班主任事迹材料
2014/05/17 职场文书
干部鉴定材料
2014/05/18 职场文书
运动会加油稿100字
2014/09/19 职场文书
党支部先进事迹材料
2014/12/24 职场文书
商务邀请函
2015/01/30 职场文书
2015年九一八事变纪念日演讲稿
2015/03/19 职场文书
2015年上半年物业工作总结
2015/03/30 职场文书
2015最新民情日记范文
2015/06/26 职场文书
酒店宣传语大全
2015/07/13 职场文书
教师实习自我鉴定总结
2019/08/20 职场文书
springboot如何接收application/x-www-form-urlencoded类型的请求
2021/11/02 Java/Android