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通过yield实现数组全排列的方法
Mar 18 Python
利用 python 对目录下的文件进行过滤删除
Dec 27 Python
Python异常的检测和处理方法
Oct 26 Python
Python计算时间间隔(精确到微妙)的代码实例
Feb 26 Python
python3实现在二叉树中找出和为某一值的所有路径(推荐)
Dec 26 Python
Python换行与不换行的输出实例
Feb 19 Python
Python基于stuck实现scoket文件传输
Apr 02 Python
解决python父线程关闭后子线程不关闭问题
Apr 25 Python
Python利用Pillow(PIL)库实现验证码图片的全过程
Oct 04 Python
pytest fixtures装饰器的使用和如何控制用例的执行顺序
Jan 28 Python
Python 统计序列中元素的出现频度
Apr 26 Python
pytorch实现加载保存查看checkpoint文件
Jul 15 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
PHP5中新增stdClass 内部保留类
2011/06/13 PHP
typecho插件编写教程(三):保存配置
2015/05/28 PHP
详解Window7 下开发php扩展
2015/12/31 PHP
简单谈谈PHP中的trait
2017/02/25 PHP
PHP队列场景以及实现代码实例详解
2021/02/26 PHP
javascript 特殊字符串
2009/02/25 Javascript
40个有创意的jQuery图片、内容滑动及弹出插件收藏集之一
2011/12/31 Javascript
让ie6也支持websocket采用flash封装实现
2013/02/18 Javascript
javascript中注册和移除事件的4种方式
2013/03/20 Javascript
javascript变量作用域使用中常见错误总结
2013/03/26 Javascript
用js实现trim()的解决办法
2013/04/16 Javascript
IE下JS读取xml文件示例代码
2013/08/05 Javascript
用jQuery模拟select下拉框的简单示例代码
2014/01/26 Javascript
jQuery中width()方法用法实例
2014/12/24 Javascript
javascript文本框内输入文字倒计数的方法
2015/02/24 Javascript
JavaScript中Object.prototype.toString方法的原理
2016/02/24 Javascript
bootstrap学习笔记之初识bootstrap
2016/06/21 Javascript
js改变css样式的三种方法推荐
2016/06/28 Javascript
微信小程序-图片、录音、音频播放、音乐播放、视频、文件代码实例
2016/11/22 Javascript
jQuery实现鼠标悬停3d菜单展开动画效果
2017/01/19 Javascript
node.js实现上传文件功能
2019/07/15 Javascript
JavaScript JSON数据处理全集(小结)
2019/08/15 Javascript
关于JS解构的5种有趣用法
2019/09/05 Javascript
Vue打包后访问静态资源路径问题
2019/11/08 Javascript
vue实现简单图片上传
2020/06/30 Javascript
详解datagrid使用方法(重要)
2020/11/06 Javascript
编写简单的Python程序来判断文本的语种
2015/04/07 Python
Python将字符串常量转化为变量方法总结
2019/03/17 Python
Django REST framework 如何实现内置访问频率控制
2019/07/23 Python
TensorFlow实现checkpoint文件转换为pb文件
2020/02/10 Python
PyQt5中QTableWidget如何弹出菜单的示例代码
2020/02/23 Python
老师对学生的评语
2014/04/18 职场文书
税务职业生涯规划书范文
2014/09/16 职场文书
学生检讨书范文
2014/10/30 职场文书
银行给客户的感谢信
2015/01/23 职场文书
只需要100行Python代码就可以实现的贪吃蛇小游戏
2021/05/27 Python