本文实例为大家分享了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()
效果图:
就是上图这个界面了:
start 开始按钮
stop 结束按钮
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。
华山资源网 Design By www.eoogi.com
广告合作:本站广告合作请联系QQ:858582 申请时备注:广告合作(否则不回)
免责声明:本站资源来自互联网收集,仅供用于学习和交流,请遵循相关法律法规,本站一切资源不代表本站立场,如有侵权、后门、不妥请联系本站删除!
免责声明:本站资源来自互联网收集,仅供用于学习和交流,请遵循相关法律法规,本站一切资源不代表本站立场,如有侵权、后门、不妥请联系本站删除!
华山资源网 Design By www.eoogi.com
暂无评论...
更新日志
2024年11月15日
2024年11月15日
- 陈洁丽《监听王NO.1 》示范级发烧天碟[WAV+分轨][1.1G]
- 单色凌.2014-小岁月太着急【海蝶】【WAV+CUE】
- 陈淑桦.1988-抱紧我HOLD.ME.NOW【EMI百代】【WAV+CUE】
- 黄妃.2020-色違【米乐士娱乐】【FLAC分轨】
- LouisHayes-ArtformRevisited(2024)[24Bit-96kHz]FLAC
- 永恒英文金曲精选5《TheBestOfEverlastingFavouritesVol.5》[WAV+CUE]
- 黑鸭子2005-紫丁香[首版][WAV+CUE]
- 林忆莲《爱上一个不回家的人》XRCD版[低速原抓WAV+CUE][999M]
- 经典《历届奥斯卡金曲回顾》[正版原抓WAV+CUE] [1G]
- 群星《试音草原·女声篇》经典蒙古民歌[WAV+CUE][1G]
- 炉石传说月末上分卡组推荐 国服月末最快上分卡组推荐
- 炉石传说月底最强卡组有哪些 2024国服月底最强卡组推荐
- 炉石传说月初最强卡组有哪些 2024月初最强上分卡组推荐
- 狼人杀亮相原生鸿蒙之夜 假面科技强势登陆华为生态
- 12小时光线挑战!AI画质专家才是大平层首选