-- encoding = 'utf-8' --
author = 'zhuoda'
import tkinter
import random
import threading
import time
''''
下一步要完成的是 从列表中去掉 已经 抽到过的数字, 停止时操作.
弹出窗口 恭喜对放框.
还没解决 输入的不是数字...提示一下...
'''
初始化窗口
root=tkinter.Tk()
root.title("随机名单")
root.geometry('500x500+400+200')
root.resizable(False,False)
root.flag = True
三个Lable标签
first = tkinter.Label(root,text='',font = ("宋体", 20,"normal"))
first.place(x=180,y=100,width=150,height=100)
second = tkinter.Label(root,text='',font = ("宋体", 20,"normal"))
second['fg'] = 'red'
second.place(x=180,y=200,width=150,height=100)
third = tkinter.Label(root,text='',font = ("宋体", 20,"normal"))
third.place(x=180,y=300,width=150,height=100)
一个text 文本框
输入 抽奖的号码1到 N ,N为最大值
lable1 = tkinter.Label(root,text='请输入参与抽奖的人数:')
lable1.place(x=30, y=100, width=180, height=20)
text1 = tkinter.Entry()
text1.pack()
num = text1.get() #获取text1的内容
students = [i for i in range(1,50)]
text1.place(x=250, y=100, width=180, height=20)
studenst = []
students=[i for i in range(1,int(text1['text'] )+1)]
students=['小明1','小明2','小明3','小明4','小明5','小明6']
def get_num():
try:
if text1.get().isdigit: #如果输入的是数字 可以开始
return [i for i in range(1,int(text1.get())+1)] # 返回最大号码
else:
return False
except Exception as e:
print(e)
def switch():
if text1.get().isdigit(): #如果输入的是数字 可以开始
students = get_num() #获取 文本档中的内内容
root.flag = True
else:
root.flag = False
text1['text'] = '请输入数字'
while root.flag:
i=random.randint(0, len(students)-1)
first['text']=second['text']
second['text']=third['text']
third['text']=students[i]
time.sleep(0.1) # 数字刷新的时间
开始按钮
def butStartClick():
t=threading.Thread(target=switch) #运行switch 函数
t.start()
btnStart=tkinter.Button(root,text='开始',command=butStartClick)
btnStart.place(x=30, y=30, width=80, height=20)
结束按钮
def btnStopClick():
root.flag=False
butStop=tkinter.Button(root,text='停止',command=btnStopClick)
butStop.place(x=160, y=30, width=80, height=20)
启动主程序
root.mainloop()