教你⽤Python实现⼀个抽奖⼩游戏
⽬录
⼀、Python GUI 编程简介
⼆、流⾏GUI框架总结
三、代码演⽰
四、界⾯
⼀、Python GUI 编程简介
Tkinter 模块(Tk 接⼝)是 Python 的标准 Tk GUI ⼯具包的接⼝ .Tk 和 Tkinter 可以在⼤多数的 Unix 平台下使⽤,同样可以应⽤在 Windows 和 Macintosh 系统⾥。Tk8.0 的后续版本可以实现本地窗⼝风格,并良好地运⾏在绝⼤多数平台中。
wxPython 是⼀款开源软件,是 Python 语⾔的⼀套优秀的 GUI 图形库,允许 Python 程序员很⽅便的创建完整的、功能健全的 GUI ⽤户界⾯。
pyqt5是⼀套Python绑定Digia QT5应⽤的框架。它可⽤于Python 2和3。pyqt5作为Python的⼀个模块,它有620多个类和6000个函数和⽅法。这是⼀个跨平台的⼯具包,它可以运⾏在所有主要的操作系统,包括UNIX,Windows,Mac OS。
pyqt5是双重许可,开发者可以在LGPL协议和商业许可之间进⾏选择,也就是开源免费版本或者收费版本,商业版的 Qt 通常包含有⼀些开源版本所没有的库。
QT给我们带来最⽅便的好处,就是它有⼀个QT Desiginer,这个设计器可以⽅便我们进⾏页⾯的布局,可以说在Tkinter⾥⾯需要⼀坨坨的代码完成的页⾯布局,在QT⾥⾯只要拖⼀拖控件就搞定了。
⼆、流⾏GUI框架总结
QT的优点是有⼀个关于页⾯布局设计的设计器QT Desiginer,拖动控件就可以进⾏页⾯的布局设计、美化等,界⾯美观,多个平台可使⽤,⽂档和教程丰富,但是有商业化使⽤版权问题,需要授权,体积较⼤。⽽Tkinter要设计这种页⾯,需要⾃⼰写代码定义按钮,使⽤代码完成的页⾯布局,因为Tkinter 没有提供⼀个图形界⾯设计器,但是Tikinter的优点是容易学习、性能好。
QT可能是最强⼤的,但也许它也是最复杂的。如果你要在商业上推销使⽤Pyqt5设计的软件,那么你需要确保你有正确理解QT许可证或准备⽀付⼀笔不⼩的费⽤,但是研究学习的话,可以选择开源版本的QT。
wxPython可以说是QT和Tkinter的折衷,它是免费的,源代码是开放的,允许其应⽤在商业产品上,你可以免费使⽤它和共享它。同时它也提供类似QT Designer的设计器wxFormbuilder。可以说是压缩版的QT,但是该有的功能却完全不缺失,拥有成熟和丰富的包,跨平台,可在Unix,windows,MAC 下运⾏,⼊门简单,⽂档资料很详细,⼜有官⽅Demo。
这三种主流界⾯GUI设计框架,在实际应⽤中⼤家可以根据⾃⼰的实际需求来进⾏选择使⽤。
三、代码演⽰
下⾯就⽤Tkinter定义界⾯控件,实现⼀个简单的抽奖游戏界⾯的设计,然后就进⾏游戏抽奖,如下所⽰:
import tkinter
import time
import threading
from random import random
from tkinter import messagebox as tkMessageBox
class choujiang:
# 初始化魔术⽅法
def __init__(self):
# 准备好界⾯
< = tkinter.Tk()
# 声明⼀个是否按下开始的变量
self.isloop = False
self.value = []
# 调⽤设置界⾯的⽅法
self.setwindow()
# 界⾯布局⽅法
def setwindow(self):
# 开始停⽌按钮
self.btn_start = tkinter., text='start/stop', wtask)
self.btn_start.place(x=125, y=125, width=70, height=70)
self.btn1 = tkinter., text='1', bg='red')
self.btn1.place(x=20, y=20, width=50, height=50)
self.btn2 = tkinter., text='2', bg='white')
self.btn2.place(x=90, y=20, width=50, height=50)
self.btn3 = tkinter., text='3', bg='white')
self.btn3.place(x=160, y=20, width=50, height=50)
self.btn4 = tkinter., text='3', bg='white')
self.btn4.place(x=230, y=20, width=50, height=50)
self.btn5 = tkinter., text='3', bg='white')
self.btn5.place(x=230, y=90, width=50, height=50)
self.btn6 = tkinter., text='2', bg='white')
self.btn6.place(x=230, y=160, width=50, height=50)
self.btn7 = tkinter., text='1', bg='white')
self.btn7.place(x=230, y=230, width=50, height=50)
self.btn8 = tkinter., text='3', bg='white')
self.btn8.place(x=160, y=230, width=50, height=50)
self.btn9 = tkinter., text='2', bg='white')
self.btn9.place(x=90, y=230, width=50, height=50)
self.btn10 = tkinter., text='3', bg='white')
self.btn10.place(x=20, y=230, width=50, height=50)
self.btn11 = tkinter., text='1', bg='white')
self.btn11.place(x=20, y=160, width=50, height=50)
self.btn12 = tkinter., text='3', bg='white')
self.btn12.place(x=20, y=90, width=50, height=50)
# 将所有选项组成列表
self.girlfrends = [self.btn1, self.btn2, self.btn3, self.btn4, self.btn5, self.btn6, self.btn7, self.btn8, self.btn9, self.btn10, self.btn11, self.btn12]
def rounds(self):
# 判断是否开始循环
if self.isloop == True:
return
# 初始化计数变量
i = 0
# 死循环
while True:
wloop == True:
self.value = self.girlfrends[i - 1]['text']
if self.value =='1':
tkMessageBox.showinfo( "Winning Result", "恭喜获得⼀等奖!'")
if self.value == '2':
tkMessageBox.showinfo("Winning Result", "恭喜获得⼆等奖!")
if self.value == '3':
tkMessageBox.showinfo("Winning Result", '恭喜获得三等奖!')
return
# 延时操作
time.sleep(0.1)
# 将所有的组件背景变为⽩⾊
for x in self.girlfrends:
x['bg'] = 'white'
# 将当前数值对应的组件变⾊
self.girlfrends[i]['bg'] = 'red'
# 变量+1
i += 1
# 如果i⼤于最⼤索引直接归零
if i >= len(self.girlfrends):
i = 0
# 建⽴⼀个新线程的函数
def newtask(self):
if self.isloop == False:
# 建⽴线程
t = threading.Thread(unds)
# 开启线程运⾏
t.start()
# 设置循环开始标志python可以做什么游戏
self.isloop = True
elif self.isloop == True:
self.isloop = False
#转盘效果
c = choujiang()
四、界⾯
到此这篇关于教你⽤Python实现⼀个抽奖⼩游戏的⽂章就介绍到这了,更多相关Python抽奖⼩
游戏内容请搜索以前的⽂章或继续浏览下⾯的相关⽂章希望⼤家以后多多⽀持!
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论