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语言描述连续子数组的最大和
Jan 04 Python
python 对多个csv文件分别进行处理的方法
Jan 07 Python
解决pycharm每次新建项目都要重新安装一些第三方库的问题
Jan 17 Python
Python判断两个文件是否相同与两个文本进行相同项筛选的方法
Mar 01 Python
python字符串替换第一个字符串的方法
Jun 26 Python
深入了解Python iter() 方法的用法
Jul 11 Python
python+logging+yaml实现日志分割
Jul 22 Python
详解Python3定时器任务代码
Sep 23 Python
django框架中ajax的使用及避开CSRF 验证的方式详解
Dec 11 Python
Python object类中的特殊方法代码讲解
Mar 06 Python
Jupyter notebook运行Spark+Scala教程
Apr 10 Python
利用For循环遍历Python字典的三种方法实例
Mar 25 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
ftp类(example.php)
2006/10/09 PHP
PHP中的array数组类型分析说明
2010/07/27 PHP
WordPress中自定义后台管理界面配色方案的小技巧
2015/12/29 PHP
EarthLiveSharp中cloudinary的CDN图片缓存自动清理python脚本
2017/04/04 PHP
PHP实现数据库的增删查改功能及完整代码
2018/04/18 PHP
asp批量修改记录的代码
2008/06/25 Javascript
JQuery 初体验(建议学习jquery)
2009/04/25 Javascript
jquery等宽输出文字插件使用介绍
2013/09/18 Javascript
jQuery中ajax的get()方法用法实例
2014/12/26 Javascript
JS简单计算器实例
2015/01/20 Javascript
AngularJS学习笔记之基本指令(init、repeat)
2015/06/16 Javascript
JavaScript的Backbone.js框架的一些使用建议整理
2016/02/14 Javascript
JQuery点击事件回到页面顶部效果的实现代码
2016/05/24 Javascript
ajax接收后台数据在html页面显示
2017/02/19 Javascript
jQuery实现上传图片前预览效果功能
2017/08/03 jQuery
vue 打包后的文件部署到express服务器上的方法
2017/08/09 Javascript
解读vue生成的文件目录结构及说明
2017/11/27 Javascript
elementUI多选框反选的实现代码
2019/04/03 Javascript
Vue执行方法,方法获取data值,设置data值,方法传值操作
2020/08/05 Javascript
Python实现的简单计算器功能详解
2018/08/25 Python
Python补齐字符串长度的实例
2018/11/15 Python
Python虚拟环境的原理及使用详解
2019/07/02 Python
Python3+Requests+Excel完整接口自动化测试框架的实现
2019/10/11 Python
高清屏中使用Canvas绘图出现模糊的问题及解决方法
2019/06/03 HTML / CSS
团员学习总结的自我评价范文
2013/10/14 职场文书
2013年入党人员的自我鉴定
2013/10/25 职场文书
化工专业推荐信范文
2013/11/28 职场文书
无工作经验者个人求职信范文
2013/12/22 职场文书
环保倡议书
2014/04/14 职场文书
政府班子四风问题整改措施思想汇报
2014/10/08 职场文书
班主任2015新年寄语
2014/12/08 职场文书
2015年政务公开工作总结
2015/05/19 职场文书
风之谷观后感
2015/06/11 职场文书
建筑工程挂靠协议书
2016/03/23 职场文书
教你怎么用python实现字符串转日期
2021/05/24 Python
Python 多线程处理任务实例
2021/11/07 Python