|
抽奖程序
- '''
- 抽奖程序
- 使用时可以修改嘉宾名单,然后单机‘开始’和‘停止’按钮
- 来控制界面上名单的滚动实现抽奖功能,涉及的模块主要
- 有多线程
- '''
- import itertools
- import random
- import threading
- import time
- import tkinter
- import tkinter.messagebox
- root = tkinter.Tk()
- #窗口标题
- root.title('随机提问')
- root.geometry('260x180+400+300')
- #不允许改变窗口大小
- root.resizable(False,False)
- #关闭程序时,执行的函数代码,停止滚动显示学生名单
- def closeWindow():
- root.flag = False
- time.sleep(0.1)
- root.destroy()
- root.protocol('VM_DELETE_WINDOW',closeWindow)
- #模拟学生名单,可以加上数据库访问接口,从数据库中读取学生名单
- student = ['张三','李四','王五','赵六','周七','钱八']
- #变量,用来控制是否滚动显示学生名单
- root.flag = False
- def switch():
- root.flag = True
- #随机打乱学生名单
- t = student[:]
- random.shuffle(t)
- t = itertools.cycle(t)
- while root.flag:
- #滚动显示
- lbFirst['text'] = lbSecond['text']
- lbSecond['text'] = lbThird['text']
- lbThird['text'] = next(t)
- #数字可以修改,控制滚动速度
- time.sleep(0.1)
- def btnStartClick():
- #每次单机‘开始’按钮启动新线程,并禁用开始按钮,启动停止按钮
- t = threading.Thread(target=switch)
- t.start()
- btnStart['state'] = 'disabled'
- btnStop['state'] = 'normal'
- btnStart = tkinter.Button(root,text='开始',command=btnStartClick)
- btnStart.place(x=30,y=10,width=80,height=20)
- def btnStopClick():
- #单机停按钮结束滚动显示,弹窗提示中将名单,修改按钮状态
- root.flag = False
- time.sleep(0.3)
- tkinter.messagebox.showinfo('恭喜','本次中奖:'+lbSecond['text'])
- btnStart['state'] = 'normal'
- btnStop['state'] = 'disabled'
- btnStop = tkinter.Button(root,text='停',command=btnStopClick)
- btnStop['state'] = 'disabled'
- btnStop.place(x=150,y=10,width=80,height=20)
- #用来滚动显示学生名单的3个Label组件
- #可以根据需求添加Label组件的数量,但是要修改上面的代码函数代码
- lbFirst = tkinter.Label(root,text='')
- lbFirst.place(x=80,y=60,width=100,height=20)
- #红色Label组件,表示中奖名单
- lbSecond = tkinter.Label(root,text='')
- lbSecond['fg'] = 'red'
- lbSecond.place(x=80,y=90,width=100,height=20)
- lbThird = tkinter.Label(root,text='')
- lbThird.place(x=80,y=120,width=100,height=20)
- #启动tkinter主程序
- root.mainloop()
复制代码
来源:https://www.cnblogs.com/buchijiuminvhai/p/17058049.html
免责声明:由于采集信息均来自互联网,如果侵犯了您的权益,请联系我们【E-Mail:cb@itdo.tech】 我们会及时删除侵权内容,谢谢合作! |
本帖子中包含更多资源
您需要 登录 才可以下载或查看,没有账号?立即注册
x
|