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 18 Python
Windows上使用virtualenv搭建Python+Flask开发环境
Jun 07 Python
python使用锁访问共享变量实例解析
Feb 08 Python
Python闭包函数定义与用法分析
Jul 20 Python
python识别图像并提取文字的实现方法
Jun 28 Python
python打包exe开机自动启动的实例(windows)
Jun 28 Python
Python树莓派学习笔记之UDP传输视频帧操作详解
Nov 15 Python
np.random.seed() 的使用详解
Jan 14 Python
tensorflow 保存模型和取出中间权重例子
Jan 24 Python
如何解决安装python3.6.1失败
Jul 01 Python
python实现简单遗传算法
Sep 18 Python
使用Python制作一个数据预处理小工具(多种操作一键完成)
Feb 07 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
全国FM电台频率大全 - 14 江西省
2020/03/11 无线电
浅谈PHP中Stream(流)
2015/06/08 PHP
php轻松实现文件上传功能
2016/03/03 PHP
php实现批量删除挂马文件及批量替换页面内容完整实例
2016/07/08 PHP
浅谈PHP实现大流量下抢购方案
2017/12/15 PHP
PHP+redis实现的购物车单例类示例
2019/02/02 PHP
一页面多XMLHttpRequest对象
2007/01/22 Javascript
JavaScript中的函数重载深入理解
2014/08/04 Javascript
jQuery简单实现提交数据出现loading进度条的方法
2016/03/29 Javascript
js实现弹窗居中的简单实例
2016/10/09 Javascript
JavaScript for循环 if判断语句(学习笔记)
2017/10/11 Javascript
判断div滑动到底部的scroll实例代码
2017/11/15 Javascript
vue使用技巧及vue项目中遇到的问题
2018/06/04 Javascript
js中时间格式化的几种方法
2018/07/22 Javascript
js实现简单分页导航栏效果
2019/06/28 Javascript
vue实现公共方法抽离
2020/07/31 Javascript
vue data变量相互赋值后被实时同步的解决步骤
2020/08/05 Javascript
解决vue组件没显示,没起作用,没报错,但该显示的组件没显示问题
2020/09/02 Javascript
numpy实现合并多维矩阵、list的扩展方法
2018/05/08 Python
pandas将多个dataframe以多个sheet的形式保存到一个excel文件中
2019/10/10 Python
使用 Python 写一个简易的抽奖程序
2019/12/08 Python
Python表达式的优先级详解
2020/02/18 Python
python实现UDP协议下的文件传输
2020/03/20 Python
MIKI HOUSE美国官方网上商店:日本领先的婴儿和儿童高级时装品牌
2020/06/21 全球购物
历史教育专业个人求职信
2013/12/13 职场文书
医药工作岗位求职信分享
2013/12/31 职场文书
商场经理竞聘演讲稿
2014/01/01 职场文书
酒店营销策划方案
2014/02/07 职场文书
服务承诺书怎么写
2014/05/24 职场文书
社区党建工作汇报材料
2014/08/14 职场文书
人事代理委托书
2014/09/27 职场文书
2014年节能降耗工作总结
2014/12/11 职场文书
2015年医院保卫科工作总结
2015/07/23 职场文书
幼儿园教师教育随笔
2015/08/14 职场文书
网络研修随笔感言
2015/11/18 职场文书
MySQL高级进阶sql语句总结大全
2022/03/16 MySQL