from tkinter import *
import random
import threading
import os
path = os.path.dirname(os.path.abspath(file))
class Prize:
def init(self):
# 定义常量
self.people = list(range(1, 86))
self.winner1 = list()
self.winner2 = list()
self.winner3 = list()
self.winner4 = list()
# 初始化窗口
self.root = Tk()
self.root.geometry('1920x1080')
self.root.title("幸运大抽奖")
# 获取输入框内容
self.e = Entry(self.root)
self.e.pack(side="top")
self.e.insert(0, "请输入")
# 初始化画布背景
self.canvas = Canvas(self.root, width=1920, height=1080, bg="red")
self.im = PhotoImage(file="test1.png")
self.canvas.create_image(0, 0, anchor=NW, image=self.im)
self.canvas.pack()
# 初始化按钮
self.first = Label(self.root, text='', font=("Arial", 160, "normal"), bg="pink", width=200, height=200)
self.first.place(x=765, y=445, width=375, height=375)
# 奖品展示
self.o = Label(self.root, text='一等奖:华为手机,价值6600', font=("Arial", 18), bg="yellow")
self.o.place(x=200, y=500)
self.b = Label(self.root, text='二等奖:戴森吸尘器or卷发棒,价值3700', font=("Arial", 18), bg="yellow")
self.b.place(x=200, y=540)
self.c = Label(self.root, text='三等奖:马歇尔蓝牙音响orBose降噪蓝牙耳机,价值2000', font=("Arial", 18), bg="yellow",
anchor="nw", justify="left", wraplength=450)
self.c.place(x=200, y=580)
self.d = Label(self.root, text='佛系随缘奖:电影票,价值80', font=("Arial", 18), bg="yellow")
self.d.place(x=200, y=650)
self.cute1 = Label(self.root, text="一等奖(1)<华为mate20>:", bg="red", font=("Arial", 14))
self.cute1.place(x=1350, y=600)
self.cute2 = Label(self.root, text="二等奖(2)<戴森系列卷发棒or吸尘器>:", bg="red", font=("Arial", 14))
self.cute2.place(x=1350, y=650)
self.cute3 = Label(self.root, text="三等奖(3)<马歇尔蓝牙音箱orBose蓝牙耳机>:", bg="red", font=("Arial", 14))
self.cute3.place(x=1350, y=700)
self.cute4 = Label(self.root, text="参与奖(10)<电影票>:", bg="red", font=("Arial", 14), anchor="nw", justify="left",
wraplength=450)
self.cute4.pack()
self.cute4.place(x=1350, y=750)
self.b0 = Button(self.root, command=self.del_num, width=30, height=30, text="del",
font=("Arial", 28), bg="red")
self.b0.place(x=1840, y=60, width=80, height=80)
self.buttonStart = Button(self.root, command=self.button_start_click, width=30, height=30, text="start",
font=("Arial", 28), bg="red")
self.buttonStart.place(x=1600, y=60, width=80, height=80)
self.buttonEnd = Button(self.root, command=self.button_end_click, width=30, height=30, text="end",
font=("Arial", 28), bg="red")
self.buttonEnd.place(x=1680, y=60, width=80, height=80)
self.buttonTen = Button(self.root, command=self.ten, width=30, height=30, text="batch", font=("Arial", 24),
bg="red")
self.buttonTen.place(x=1760, y=60, width=80, height=80)
self.buttonClear = Button(self.root, command=self.button_clear_one_click, width=30, height=30, text="C_F",
font=("Arial", 16), bg="red")
self.buttonClear.place(x=1870, y=150, width=50, height=50)
self.buttonClear = Button(self.root, command=self.button_clear_two_click, width=30, height=30, text="C_S",
font=("Arial", 16), bg="red")
self.buttonClear.place(x=1870, y=200, width=50, height=50)
self.buttonClear = Button(self.root, command=self.button_clear_three_click, width=30, height=30, text="C_T",
font=("Arial", 16), bg="red")
self.buttonClear.place(x=1870, y=250, width=50, height=50)
self.buttonClear = Button(self.root, command=self.button_clear_others_click, width=30, height=30, text="C_O",
font=("Arial", 16), bg="red")
self.buttonClear.place(x=1870, y=300, width=50, height=50)
self.buttonClear = Button(self.root, command=self.button_clear_all_click, width=30, height=30, text="C_A",
font=("Arial", 16), bg="red")
self.buttonClear.place(x=1870, y=350, width=50, height=50)
self.root.mainloop()
def switch(self):
self.root.flag = True
while self.root.flag:
i = random.randint(1, len(self.people) - 1)
self.first["text"] = self.people[i]
if 0 <= len(self.winner4) < 10:
self.winner4.append(self.people.pop(i))
elif len(self.winner4) == 10 and 0 <= len(self.winner3) < 3:
self.winner3.append(self.people.pop(i))
elif len(self.winner4) == 10 and len(self.winner3) == 3 and 0 <= len(self.winner2) < 2:
self.winner2.append(self.people.pop(i))
elif len(self.winner4) == 10 and len(self.winner3) == 3 and len(self.winner2) == 2 and len(self.winner1) == 0:
self.winner1.append(self.people.pop(i))
self.cute1["text"] = "一等奖(1)<华为mate20>:" + self.string_(self.winner1)
self.cute2["text"] = "二等奖(2)<戴森系列卷发棒or吸尘器>:" + self.string_(self.winner2)
self.cute3["text"] = "三等奖(3)<马歇尔蓝牙音箱orBose蓝牙耳机>:" + self.string_(self.winner3)
self.cute4["text"] = "参与奖(10)<电影票>:" + self.string_(self.winner4)
def button_start_click(self):
t = threading.Thread(target=self.switch)
t.start()
def button_end_click(self):
self.root.flag = False
def ten(self):
"""一次性抽10个"""
for n in range(10):
i = random.randint(1, len(self.people) - 1)
if 0 <= len(self.winner4) < 10:
self.winner4.append(self.people.pop(i))
elif len(self.winner4) == 10 and 0 <= len(self.winner3) < 3:
self.winner3.append(self.people.pop(i))
elif len(self.winner4) == 10 and len(self.winner3) == 3 and 0 <= len(self.winner2) < 2:
self.winner2.append(self.people.pop(i))
elif len(self.winner4) == 10 and len(self.winner3) == 3 and len(self.winner2) == 2 and len(self.winner1) == 0:
self.winner1.append(self.people.pop(i))
self.cute1["text"] = "一等奖(1)<华为mate20>:" + self.string_(self.winner1)
self.cute2["text"] = "二等奖(2)<戴森系列卷发棒or吸尘器>:" + self.string_(self.winner2)
self.cute3["text"] = "三等奖(3)<马歇尔蓝牙音箱orBose蓝牙耳机>:" + self.string_(self.winner3)
self.cute4["text"] = "参与奖(10)<电影票>:" + self.string_(self.winner4)
@staticmethod
def string_(list_data):
"""将列表数据去掉中括号"""
res = ""
if len(list_data) > 0:
for i in list_data:
res += str(i) + ","
res = res.strip(",")
else:
res = ""
return res
def button_clear_others_click(self):
"""清除其他奖项序号"""
self.people += self.winner4
self.winner4 = []
self.cute4["text"] = "参与奖(10)<电影票>:" + self.string_(self.winner4)
def button_clear_one_click(self):
"""清除一等奖序号"""
self.people += self.winner4
self.winner1 = []
self.cute1["text"] = "一等奖(1)<华为mate20>:" + self.string_(self.winner1)
def button_clear_two_click(self):
"""清除其他奖项序号"""
self.people += self.winner4
self.winner2 = []
self.cute2["text"] = "二等奖(2)<戴森系列卷发棒or吸尘器>:" + self.string_(self.winner2)
def button_clear_three_click(self):
"""清除其他奖项序号"""
self.people += self.winner4
self.winner3 = []
self.cute3["text"] = "三等奖(3)<马歇尔蓝牙音箱orBose蓝牙耳机>:" + self.string_(self.winner3)
def button_clear_all_click(self):
"""清除所有数据"""
self.button_clear_one_click()
self.button_clear_two_click()
self.button_clear_three_click()
self.button_clear_others_click()
self.first["text"] = ""
self.people = list(range(1, 91))
def del_num(self):
content_str = self.e.get()
content_list = content_str.split(",")
# print("get--->>>", content, self.winner1, self.winner2, self.winner3, self.winner4)
for content in content_list:
try:
content = int(content)
except Exception as e:
print(e)
pass
if content in self.winner1:
self.winner1.remove(content)
self.cute1["text"] = "一等奖(1)<华为mate20>:" + self.string_(self.winner1)
elif content in self.winner2:
self.winner2.remove(content)
self.cute2["text"] = "二等奖(2)<戴森系列卷发棒or吸尘器>:" + self.string_(self.winner2)
elif content in self.winner3:
self.winner3.remove(content)
self.cute3["text"] = "三等奖(3)<马歇尔蓝牙音箱orBose蓝牙耳机>:" + self.string_(self.winner3)
elif content in self.winner4:
self.winner4.remove(content)
self.cute4["text"] = "参与奖(10)<电影票>:" + self.string_(self.winner4)
else:
pass
if name == ‘main’:
prize = Prize()