这篇文章主要为大家详细介绍了python编写实现抽奖器,文中代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
# coding=utf-8
import sys
import os
import openpyxl
if sys.version_info[ 0 ] = = 2 :
import Tkinter
from Tkinter import *
else :
import tkinter as Tkinter
from tkinter import *
from tkinter import messagebox
import random
data = []
going = True
is_run = False
def getNameList():
path = os.getcwd()
wb = openpyxl.load_workbook(r 'list.xlsx' )
sheet = wb[ "Sheet1" ]
macList = []
for i in range ( 2 ,sheet.max_row + 1 ):
macList.append(sheet.cell(row = i,column = 1 ).value)
return macList
def lottery_roll(var1, var2):
global going
if going:
show_member = random.choice(data)
var1. set (show_member)
window.after( 50 , lottery_roll, var1, var2)
else :
var2. set ( '还有{}个小幸运鬼哟~' . format ( len (data)))
going = True
return
def lottery_start(var1, var2):
global is_run
if is_run:
messagebox.showwarning( '提醒' , '命运的齿轮正在疯狂转动哟!' )
return
if len (data) = = 0 :
messagebox.showwarning( '提醒' , '没有幸运儿了哟,快去抓几个吧!' )
return
is_run = True
var2. set ( '命运的齿轮开始转动起来啦~' )
lottery_roll(var1, var2)
def lottery_end():
global going, is_run, data
if is_run:
if len (data) = = 0 :
messagebox.showwarning( '提醒' , '没有幸运儿了哟,快去抓几个吧!' )
return
show_member = random.choice(data)
data.remove(show_member)
print (show_member)
var1. set (show_member)
going = False
is_run = False
else :
messagebox.showwarning( '提醒' , '命运的齿轮还没开动呢!' )
if __name__ = = '__main__' :
data = getNameList()
window = Tkinter.Tk()
window.geometry( '800x500+500+200' )
window.title( '谁是幸运儿?' )
bg_label = Label(window, width = 800 , height = 500 , bg = '#ECf5FF' )
bg_label.place(anchor = NW, x = 0 , y = 0 )
var_title = StringVar(value = '谁是幸运儿?' )
show_label1_title = Label(window, textvariable = var_title, justify = 'left' , anchor = CENTER, width = 18 , height = 4 , bg = '#ECf5FF' ,
font = '楷体 -40 bold' , foreground = 'black' )
show_label1_title.place(anchor = NW, x = 200 , y = 0 )
var1 = StringVar(value = '<.<' )
show_label1 = Label(window, textvariable = var1, justify = 'left' , anchor = CENTER, width = 7 , height = 2 , bg = '#BFEFFF' ,
font = '楷体 -40 bold' , foreground = 'black' )
show_label1.place(anchor = NW, x = 320 , y = 200 )
var2 = StringVar(value = '共有{}个幸运儿,请开始游戏' . format ( len (data)))
show_label2 = Label(window, textvariable = var2, justify = 'left' , anchor = CENTER, width = 25 , height = 4 , bg = '#ECf5FF' ,
font = '楷体 -25 bold' , foreground = 'red' )
show_label2.place(anchor = NW, x = 240 , y = 320 )
button1 = Button(window, text = '开始' , command = lambda : lottery_start(var1, var2), width = 14 , height = 2 , bg = '#A8A8A8' ,
font = '宋体 -18 bold' )
button1.place(anchor = NW, x = 210 , y = 400 )
button2 = Button(window, text = '结束' , command = lambda : lottery_end(), width = 14 , height = 2 , bg = '#A8A8A8' ,
font = '宋体 -18 bold' )
button2.place(anchor = NW, x = 450 , y = 400 )
window.mainloop()
|
截图:
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持我。