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制作钉钉加密/解密工具
Dec 07 Python
windows下安装Python和pip终极图文教程
Mar 05 Python
Python编程实现输入某年某月某日计算出这一天是该年第几天的方法
Apr 18 Python
Python中用post、get方式提交数据的方法示例
Sep 22 Python
Python实现将json文件中向量写入Excel的方法
Mar 26 Python
pip install urllib2不能安装的解决方法
Jun 12 Python
linux安装Python3.4.2的操作方法
Sep 28 Python
Python使用grequests(gevent+requests)并发发送请求过程解析
Sep 25 Python
Python算法中的时间复杂度问题
Nov 19 Python
Python爬取你好李焕英豆瓣短评生成词云的示例代码
Feb 24 Python
Python读取文件夹下的所有文件实例代码
Apr 02 Python
Python学习之异常中的finally使用详解
Mar 16 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解析json数据实例
2014/08/19 PHP
PHP cookie与session会话基本用法实例分析
2019/11/18 PHP
检测是否已安装 .NET Framework 3.5的js脚本
2009/02/14 Javascript
让你的博文自动带上缩址的实现代码,方便发到微博客上
2010/12/28 Javascript
Jquery对select的增、删、改、查操作
2015/02/06 Javascript
js用拖动滑块来控制图片大小的方法
2015/02/27 Javascript
jsMind通过鼠标拖拽的方式调整节点位置
2015/04/13 Javascript
用svg制作富有动态的tooltip
2015/07/17 Javascript
jQuery实现可以控制图片旋转角度效果(附demo源码下载)
2016/01/27 Javascript
JavaScript中setTimeout和setInterval函数的传参及调用
2016/03/11 Javascript
jQuery自定义插件详解及实例代码
2016/12/29 Javascript
微信小程序 switch组件详解及简单实例
2017/01/10 Javascript
引入外部js脚本加载慢与页面白屏问题的解决
2018/12/10 Javascript
jQuery实现input[type=file]多图预览上传删除等功能
2019/08/02 jQuery
解决 window.onload 被覆盖的问题方法
2020/01/14 Javascript
vue 检测用户上传图片宽高的方法
2020/02/06 Javascript
Vue Router 实现动态路由和常见问题及解决方法
2020/03/06 Javascript
微信小程序使用GoEasy实现websocket实时通讯
2020/05/19 Javascript
[01:59]DOTA2首部纪录片《Free to play》预告片
2014/03/12 DOTA
Python 实现购物商城,含有用户入口和商家入口的示例
2017/09/15 Python
python中import reload __import__的区别详解
2017/10/16 Python
Python set常用操作函数集锦
2017/11/15 Python
tensorflow创建变量以及根据名称查找变量
2018/03/10 Python
Python实现求一个集合所有子集的示例
2018/05/04 Python
python实现控制台打印的方法
2019/01/12 Python
Django获取model中的字段名和字段的verbose_name方式
2020/05/19 Python
python文件读取失败怎么处理
2020/06/23 Python
CSS超出文本指定宽度用省略号代替和文本不换行
2016/05/05 HTML / CSS
使用CSS3 制作一个material-design 风格登录界面实例
2016/12/12 HTML / CSS
2014年教师培训的自我评价
2014/01/03 职场文书
2014年教师节活动总结
2014/08/29 职场文书
党干部专题民主生活会对照检查材料思想汇报
2014/10/06 职场文书
2014年高二班主任工作总结
2014/12/16 职场文书
淘宝好评语句大全
2014/12/31 职场文书
MySQL触发器的使用
2021/05/24 MySQL
Python 的 sum() Pythonic 的求和方法详细
2021/10/16 Python