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中查找excel某一列的重复数据 剔除之后打印
Feb 10 Python
python通过文件头判断文件类型
Oct 30 Python
Python Paramiko模块的安装与使用详解
Nov 18 Python
Python实现excel转sqlite的方法
Jul 17 Python
TensorFlow深度学习之卷积神经网络CNN
Mar 09 Python
Python TestCase中的断言方法介绍
May 02 Python
PyCharm 创建指定版本的 Django(超详图解教程)
Jun 18 Python
python 读取数据库并绘图的实例
Dec 03 Python
python 控制台单行刷新,多行刷新实例
Feb 19 Python
Python使用Numpy模块读取文件并绘制图片
May 13 Python
七个Python必备的GUI库
Apr 27 Python
Python如何识别银行卡卡号?
Jun 10 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
56.com视频采集接口程序(PHP)
2007/09/22 PHP
破解.net程序(dll文件)编译和反编译方法
2013/01/31 PHP
抛弃 PHP 代价太高
2016/04/26 PHP
通过js脚本复制网页上的一个表格的不错实现方法
2006/12/29 Javascript
对象特征检测法判断浏览器对javascript对象的支持
2009/07/25 Javascript
文本框的字数限制功能jquery插件
2009/11/24 Javascript
jquery选择器的选择使用及性能介绍
2013/01/16 Javascript
js有序数组的连接问题
2013/10/01 Javascript
js跨域问题浅析及解决方法优缺点对比
2014/11/08 Javascript
JS+DIV+CSS排版布局实现美观的选项卡效果
2015/10/10 Javascript
js省市区级联查询(插件版&无插件版)
2017/03/21 Javascript
Angular2.0/4.0 使用Echarts图表的示例代码
2017/12/07 Javascript
nodejs调取微信收货地址的方法
2017/12/20 NodeJs
详解React之父子组件传递和其它一些要点
2018/06/25 Javascript
基于Koa(nodejs框架)对json文件进行增删改查的示例代码
2019/02/02 NodeJs
vue实现移动端input上传视频、音频
2020/08/18 Javascript
如何利用nodejs实现命令行游戏
2020/11/24 NodeJs
Python3.6安装及引入Requests库的实现方法
2018/01/24 Python
Python 反转字符串(reverse)的方法小结
2018/02/20 Python
Python实现删除时保留特定文件夹和文件的示例
2018/04/27 Python
Python数据类型之Dict字典实例详解
2019/05/07 Python
Python发展史及网络爬虫
2019/06/19 Python
python cumsum函数的具体使用
2019/07/29 Python
将Python文件打包成.EXE可执行文件的方法
2019/08/11 Python
Python Web静态服务器非堵塞模式实现方法示例
2019/11/21 Python
详解python 支持向量机(SVM)算法
2020/09/18 Python
CSS实现限制字数功能当对象内文本溢出时显示省略标记
2014/08/20 HTML / CSS
Alba Moda德国网上商店:意大利时尚女装销售
2016/11/14 全球购物
苏格兰销售女装、男装和童装的连锁店:M&Co
2018/03/16 全球购物
HashMap和Hashtable的区别
2013/05/18 面试题
机电专业体育教师求职信
2013/09/21 职场文书
小学师德师风演讲稿
2014/09/02 职场文书
有关朝花夕拾的读书笔记
2015/06/29 职场文书
演讲比赛通讯稿
2015/07/18 职场文书
2016元旦文艺汇演主持词(开场白+结束语)
2015/12/03 职场文书
Python代码,能玩30多款童年游戏!这些有几个是你玩过的
2021/04/27 Python