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 字符串操作实现代码(截取/替换/查找/分割)
Jun 08 Python
python错误:AttributeError: 'module' object has no attribute 'setdefaultencoding'问题的解决方法
Aug 22 Python
Python使用filetype精确判断文件类型
Jul 02 Python
python简单商城购物车实例代码
Mar 15 Python
Python爬虫beautifulsoup4常用的解析方法总结
Feb 25 Python
python3 小数位的四舍五入(用两种方法解决round 遇5不进)
Apr 11 Python
python实现从本地摄像头和网络摄像头截取图片功能
Jul 11 Python
python网络爬虫 CrawlSpider使用详解
Sep 27 Python
Python调用scp向服务器上传文件示例
Dec 22 Python
Pycharm内置终端及远程SSH工具的使用教程图文详解
Mar 19 Python
Python实现代码块儿折叠
Apr 15 Python
在python image 中实现安装中文字体
May 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配置文件中最常用四个ini函数
2007/03/19 PHP
PHP识别二维码的方法(php-zbarcode安装与使用)
2016/07/07 PHP
PHP数据库处理封装类实例
2016/12/24 PHP
Chrome中JSON.parse的特殊实现
2011/01/12 Javascript
js创建对象的方式总结
2015/01/10 Javascript
jquery 插件实现多行文本框[textarea]自动高度
2015/03/04 Javascript
jQuery实现仿QQ空间装扮预览图片的鼠标提示效果代码
2015/10/30 Javascript
js实现模拟银行卡账号输入显示效果
2015/11/18 Javascript
jQuery实现放大镜效果实例代码
2016/03/17 Javascript
JavaScript实现复制内容到粘贴板代码
2016/03/31 Javascript
动态的9*9乘法表效果的实现代码
2016/05/16 Javascript
jquery遍历json对象集合详解
2016/05/18 Javascript
jQuery插件学习教程之SlidesJs轮播+Validation验证
2016/07/12 Javascript
利用JavaScript阻止表单提交的两种方法
2016/08/11 Javascript
js显示动态时间的方法详解
2016/08/20 Javascript
js实现table添加行tr、删除行tr、清空行tr的简单实例
2016/10/15 Javascript
80%应聘者都不及格的JS面试题
2017/03/21 Javascript
JavaScript基于面向对象实现的猜拳游戏
2018/01/03 Javascript
vue基础之事件简写、事件对象、冒泡、默认行为、键盘事件实例分析
2019/03/11 Javascript
非常实用的jQuery代码段集锦【检测浏览器、滚动、复制、淡入淡出等】
2019/08/08 jQuery
Node.js API详解之 util模块用法实例分析
2020/05/09 Javascript
vue打包npm run build时候界面报错的解决
2020/08/13 Javascript
详解vue-router的导航钩子(导航守卫)
2020/11/02 Javascript
[00:47]DOTA2荣耀之路6:天火,天火!
2018/05/30 DOTA
vc6编写python扩展的方法分享
2014/01/17 Python
在CentOS上配置Nginx+Gunicorn+Python+Flask环境的教程
2016/06/07 Python
python编程通过蒙特卡洛法计算定积分详解
2017/12/13 Python
python pands实现execl转csv 并修改csv指定列的方法
2018/12/12 Python
Python 如何优雅的将数字转化为时间格式的方法
2019/09/26 Python
Python 词典(Dict) 加载与保存示例
2019/12/06 Python
python 视频下载神器(you-get)的具体使用
2021/01/06 Python
美国隐形眼镜网上商店:Lens.com
2019/09/03 全球购物
软件售后服务方案
2014/05/29 职场文书
导游词之山东八仙过海景区
2019/11/11 职场文书
浅谈PHP7中的一些小技巧
2021/05/29 PHP
纯CSS打字动画的实现示例
2022/08/05 HTML / CSS