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深入学习之上下文管理器
Aug 31 Python
《Python之禅》中对于Python编程过程中的一些建议
Apr 03 Python
python 2.6.6升级到python 2.7.x版本的方法
Oct 09 Python
Python中你应该知道的一些内置函数
Mar 31 Python
Python网络编程之TCP与UDP协议套接字用法示例
Feb 02 Python
python实现定时提取实时日志程序
Jun 22 Python
python 不同方式读取文件速度不同的实例
Nov 09 Python
Python for循环与range函数的使用详解
Mar 23 Python
Python3.5 Json与pickle实现数据序列化与反序列化操作示例
Apr 29 Python
对python 中re.sub,replace(),strip()的区别详解
Jul 22 Python
基于Django ORM、一对一、一对多、多对多的全面讲解
Jul 26 Python
python实现图像拼接
Mar 05 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
ThinkPHP写第一个模块应用
2012/02/20 PHP
smarty高级特性之过滤器的使用方法
2015/12/25 PHP
php生成验证码,缩略图及水印图的类分享
2016/04/07 PHP
js调用浏览器打印模块实现点击按钮触发自定义函数
2014/03/21 Javascript
JavaScript中创建字典对象(dictionary)实例
2015/03/31 Javascript
10条建议帮助你创建更好的jQuery插件
2015/05/18 Javascript
Windows下用PyCharm和Visual Studio开始Python编程
2015/10/26 Javascript
详解JavaScript正则表达式之RegExp对象
2015/12/13 Javascript
微信小程序 下拉列表的实现实例代码
2017/03/08 Javascript
js中DOM三级列表(代码分享)
2017/03/20 Javascript
jQuery实现的页面弹幕效果【测试可用】
2018/08/17 jQuery
vue 刷新之后 嵌套路由不变 重新渲染页面的方法
2018/09/13 Javascript
jQuery判断自定义属性data-val用法示例
2019/01/07 jQuery
详解Bootstrap 学习(一)入门
2019/04/12 Javascript
selenium 反爬虫之跳过淘宝滑块验证功能的实现代码
2020/08/27 Javascript
详解Vue3 Teleport 的实践及原理
2020/12/02 Vue.js
JavaScript async/await原理及实例解析
2020/12/02 Javascript
[53:44]DOTA2-DPC中国联赛 正赛 PSG.LGD vs Magma BO3 第一场 1月31日
2021/03/11 DOTA
python3.6使用tkinter实现弹跳小球游戏
2019/05/09 Python
简单了解python 邮件模块的使用方法
2019/07/24 Python
Pytorch加载部分预训练模型的参数实例
2019/08/18 Python
使用pyinstaller逆向.pyc文件
2019/12/20 Python
解决pymysql cursor.fetchall() 获取不到数据的问题
2020/05/15 Python
Python extract及contains方法代码实例
2020/09/11 Python
移动端html5 meta标签的神奇功效
2016/01/06 HTML / CSS
中班上学期幼儿评语
2014/04/30 职场文书
个人主要事迹材料
2014/08/26 职场文书
学校法制宣传日活动总结
2014/11/01 职场文书
家庭财产分割协议范文
2014/11/24 职场文书
2014年服务员个人工作总结
2014/12/23 职场文书
投资意向协议书
2015/01/29 职场文书
律政俏佳人观后感
2015/06/09 职场文书
环保宣传语大全
2015/07/13 职场文书
2015年度个人工作总结报告
2015/10/24 职场文书
redis限流的实际应用
2021/04/24 Redis
搞笑Gif:这么白这么长的腿像极了一楼的女朋友
2022/03/21 杂记