python实现抽奖软件(一)

使用python做一个年会抽奖软件(一)

先来个几张最终的图

年会抽奖图
抽奖中
在这里插入图片描述
花了2个晚上,一个下午。
最终这个功能里面,包含了滚动抽奖,显示当前场次的抽奖情况,可以显示所有抽奖,可以选择奖项,剔除了中奖的人 重新抽奖,VIP也可以重新抽奖已经中奖的人等等
当然后面因为 软件我邮件发到了自己工作邮箱,在公司一个早上又加了音乐控制,同时一些其他的bug等,不过家里的这个还是可以用的

不过,我还是先说说一开始 并不是用QT实现的,使用的tkinter, 先试了下。发现比较难用,才改用QT的。虽然都是边学边做

先说说第一个失败的例子

一开始我是在ubuntu上开发的,所以tkinter其实也开发了差不多的demo,但是放到windows上发现各种问题,就放弃了,再加上我个人感觉不好用。

tkinter做的图展示:
tkinter做的抽奖
在tkinter里面 我用到了 菜单,按键控件,lable控件,text控件等
ubuntu里面多线程+tkinter没有啥问题,但是windows上就是各种问题。再加上不好用,,先看看代码:

关键的控件介绍:
其实很多控件的属性应该都是差不多的(个人感觉)

Label

text  要现实的文本
image 想要贴的图片
bg 背景颜色
compound 文本和图片如何显示 (center 居中)
比如:

Tkinter.Label(self.app, text=self.str_text[-1], compound='center', image=self.now_show_photo[-1])

menu

add_command: 新增一个选项
lable:标签
command: 链接的动作(函数)

self.meubar = Tkinter.Menu(self.app)
self.prize_bar = Tkinter.Menu(self.meubar, tearoff = 0)
self.prize_bar.add_command(label="一等奖", command = self.prize_menu_chose_one)
self.prize_bar.add_command(label="二等奖", command = self.prize_menu_chose_two)
self.prize_bar.add_command(label="三等奖", command = self.prize_menu_chose_three)
self.meubar.add_cascade(label='奖项设置', menu=self.prize_bar)

Button

text: 按键显示的文字
command:链接的动作
bg:背景色
其实button也支持图片, image

Tkinter.Button(self.app, text="开始", command=self.newtask, bg='gold')

Text

width: 宽
height: 高
bg: 背景颜色

 Tkinter.Text(self.app, width=5, height=1, bg = "red")

基本的一些操作

打包控件:pack()
控制位置放置: place
删除控制:destroy() place_forget()

更新UI: update

图片的处理

这里图片处理用到了PIL库:
ImageTk、Image

photo_resize(self, photo_file, para):
im = Image.open(photo_file)
print photo_file, " : ", im.size
width =  (float)(im.size[0]) * para
height=  (float)(im.size[1]) * para
im = im.resize(((int)(width), (int)(height)),Image.ANTIALIAS)
return ImageTk.PhotoImage(im), im.size

好嘞, 我的一个下午的失败作先放到这儿吧,明天在说说 QT实现的。

<

  • 9
    点赞
  • 46
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值