这个双休日通过老师在培训班上所教的对Tk的一些应用而编写的一个摇奖系统。
摇奖数据库文件如下:
张铁林:18725537332
饭锅里:18722223333
郭西纲:12345678900
刘德华:23145367890
丁宁:12345678912
流畅:23456778891
程序思路如下:
1.将储存在文件当中的内容读出来,对其电话做下处理
(1).例如:12345678912 >>>123xxxx8912
2.将处理的结果储存在一个列表当中。
3.随机抽取列表当中的一个元素作为中奖对象。
4.利用TK图形显示我们需要相应的组件来放我们先前处理的数据。
5.这样我们就需要两个按钮(start,stop),和一个显示框。
6.当我们按下start按钮时,连接了我们抽取随机中奖观众的函数
按下stop按钮时,连接停止函数得到中奖观众。
代码如下:
#!/usr/bin/env python
#coding=utf-8
from Tkinter import *
import time
import random
class App:
def __init__(self,master):
frame = Frame(master)
frame.pack()
v = StringVar()
self.e = Entry(frame,textvariable=v,bd='5')
v.set('')
self.v = v
self.e.pack(padx=5)#创建显示框
self.button1 = Button(frame,text = 'start',fg='red',command=self.start_hi)
self.button1.pack(side=LEFT)#创建start按钮
self.button2 = Button(frame,text='stop',fg = 'blue',command=self.say_stop)
self.button2.pack(side=LEFT)#创建stop按钮
self.root=master
self.stop = 0
#scrollbar = Scrollbar(frame, orient=VERTICAL)
#self.b1 = Listbox(frame, yscrollcommand=scrollbar.set)
#scrollbar.pack(side=RIGHT, fill=Y)
#self.b1.pack(side=LEFT, fill=BOTH, expand=1)
def list_star(self):
star = []
file = open('yaojiang.txt','r+')
data = file.readlines()#读取文件当中的内容
file.close()
for n in data:
l1 = n.split(':')
a = l1[0] + ':'+ l1[1][:4] + 'xxxx' + l1[1][8:12]#用xxxx代替中间4位号码
a = a.strip()
star.append(a)#创建列表
return star
def start_hi(self):
self.stop = 0
#star = []
#file = open('yaojiang.txt','r+')
#data = file.readlines()
#file.close()
#for n in data:
#l1 = n.split(':')
#a = l1[0] + ':'+ l1[1][:4] + 'xxxx' + l1[1][8:12]
#a = a.strip()
#star.append(a)
star = self.list_star()#star列表
self.update_clock(star)#调用update_clock函数
def say_stop(self):
self.stop = 1
#b = self.start()
def update_clock(self,star):
b = random.choice(star)#抽取随机数
self.v.set(b)#显示b
if self.stop == 1:#判断停止按钮
return
self.root.after(50, self.update_clock,star)#每50毫秒循环显示一次
root = Tk()
app = App(root)
root.mainloop()