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修改操作系统时间的方法
May 18 Python
Python中super关键字用法实例分析
May 28 Python
Python实现合并同一个文件夹下所有txt文件的方法示例
Apr 26 Python
pandas.loc 选取指定列进行操作的实例
May 18 Python
Python运维开发之psutil库的使用详解
Oct 18 Python
Python第三方Window模块文件的几种安装方法
Nov 22 Python
Python 获取div标签中的文字实例
Dec 20 Python
python的xpath获取div标签内html内容,实现innerhtml功能的方法
Jan 02 Python
对python中的os.getpid()和os.fork()函数详解
Aug 08 Python
Python3.7+tkinter实现查询界面功能
Dec 24 Python
Python函数必须先定义,后调用说明(函数调用函数例外)
Jun 02 Python
python读取excel数据绘制简单曲线图的完整步骤记录
Oct 30 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
解决文件名解压后乱码的问题 将文件名进行转码的代码
2012/01/10 PHP
PHP中echo和print的区别
2014/08/28 PHP
微信公众号支付之坑:调用支付jsapi缺少参数 timeStamp等错误解决方法
2016/01/12 PHP
详解PHP防止直接访问.php 文件的实现方法
2017/07/28 PHP
laravel配置Redis多个库的实现方法
2019/04/10 PHP
javascript 控制弹出窗口
2007/04/10 Javascript
有关JavaScript的10个怪癖和秘密分享
2011/08/28 Javascript
Js 获取Gridview选中行的内容操作步骤
2013/02/05 Javascript
从零学JS之你需要了解的几本书
2014/05/19 Javascript
JS使用ajax方法获取指定url的head信息中指定字段值的方法
2015/03/24 Javascript
JavaScript对象数组排序函数及六个用法
2015/12/23 Javascript
Javascript中indexOf()和lastIndexOf应用方法实例
2016/08/24 Javascript
Javascript 动态改变imput type属性
2016/11/01 Javascript
JS中BOM相关知识点总结(必看篇)
2016/11/22 Javascript
使用JavaScript实现alert的实例代码
2017/07/06 Javascript
Vue.js中的图片引用路径的方式
2017/07/28 Javascript
js判断文件类型大小并给出提示的实现方法
2018/01/03 Javascript
vue 标签属性数据绑定和拼接的实现方法
2018/05/17 Javascript
JavaScript学习笔记之数组基本操作示例
2019/01/09 Javascript
深入理解Python中的内置常量
2017/05/20 Python
对python中list的拷贝与numpy的array的拷贝详解
2019/01/29 Python
详解Python数据分析--Pandas知识点
2019/03/23 Python
Python实现定时执行任务的三种方式简单示例
2019/03/30 Python
纯CSS3实现的井字棋游戏
2020/11/25 HTML / CSS
Probikekit日本:自行车套件,跑步和铁人三项装备
2017/04/03 全球购物
Space NK美国站:英国高端美妆护肤商城
2017/05/22 全球购物
SHEIN香港:价格实惠的女性时尚服装
2018/08/14 全球购物
zooplus波兰:在线宠物店
2019/07/21 全球购物
Timberland德国官网:靴子、鞋子、衣服、夹克及配件
2019/12/10 全球购物
澳大利亚购买太阳镜和眼镜网站:Glamoureyes
2020/09/22 全球购物
毕业生毕业总结的自我评价范文
2013/11/02 职场文书
生物学学生自我评价
2014/01/17 职场文书
项目建议书格式
2014/03/12 职场文书
诉讼授权委托书范本
2014/10/05 职场文书
小学优秀学生评语
2014/12/29 职场文书
个园导游词
2015/02/04 职场文书