本文已参与[新人创作礼]活动,一起开启掘金创作之路。
为了使广大的python爱好者来到这个学习的旅馆!接下来的小游戏是希望我能够在未来看到这笔记时,能够充满兴趣,重新系统的来学习Python的GUI模块。
GUI的定义:
GUI 是 Graphical User Interface 的简称,即图形用户接口,通常人机交互图形化用户界面设计经常读做“goo-ee”,准确来说 GUI 就是屏幕产品的视觉体验和互动操作部分。
GUI 是一种结合计算机科学、美学、心理学、行为学,及各商业领域需求分析的人机系统工程,强调人—机—环境三者作为一个系统进行总体设计。
常用 Python GUI 库如下:
Tkinter: Tkinter 模块(Tk 接口)是 Python 的标准 Tk GUI 工具包的接口 .Tk 和 Tkinter 可以在大多数的 Unix 平台下使用,同样可以应用在 Windows 和 Macintosh 系统里。Tk8.0 的后续版本可以实现本地窗口风格,并良好地运行在绝大多数平台中。
wxPython: wxPython 是一款开源软件,是 Python 语言的一套优秀的 GUI 图形库,允许 Python 程序员很方便的创建完整的、功能健全的 GUI 用户界面。
Jython: Jython 程序可以和 Java 无缝集成。除了一些标准模块,Jython 使用 Java 的模块。Jython 几乎拥有标准的Python 中不依赖于 C 语言的全部模块。比如,Jython 的用户界面将使用 Swing,AWT或者 SWT。Jython 可以被动态或静态地编译成 Java 字节码。**
废话不多说了,赶紧来给大家介绍游戏啦!
python小游戏 ---- 恭喜中奖游戏
# -*- coding:utf-8 -*-
"""
抽奖小工具v1.0
添加实际功能
作者: catgod007
日期: 2021年07月24日
"""
from tkinter import *
import random
version = 1.0
isSCroll = False
#是否滚动
def doClick():
global isSCroll
isSCroll = not isSCroll
btnText = '停止' if isSCroll else "开始"
dobutton.config(text=btnText)
if isSCroll:
run_counter()
# timer定时器
def run_counter():
def counter():
global phones,isSCroll
if isSCroll:
valueLabel.config(foreground = 'black')
# 抽奖时字体颜色为黑色
valueVar.set(random.choice(phones))
root.after(100,counter)#100毫秒一次
else:
# 中奖处理
valueLabel.config(foreground='red')
luckyPhone = valueVar.get()
print('中奖号码:',luckyPhone)
# 写入中奖列表
s = '中奖结果:\n' if not hisVar.get() else hisVar.get()
hisVar.set(s + " " + luckyPhone )
valueVar.set("恭喜{}中奖".format(luckyPhone))
# 将phone里移除
phones.remove(luckyPhone)
counter()
# 读取电话号码
with open('lotterDraw.txt','r') as file:
phones = file.readlines()
phones = [x.strip("\n") for x in phones]
print(phones)
root = Tk()
root.title('抽奖小工具v{}'.format(version))
root.geometry('800x600')
valueVar = StringVar()
valueVar.set('点击开始进入抽奖')
valueLabel = Label(root,textvariable=valueVar,font='楷体 48 normal')
valueLabel.pack(fill=BOTH,expand=True,pady=30)
# 水平和垂直都填充(fill=BOTH),是扩展(expand=True)
hisVar = StringVar()
hislable = Label(root,textvariable=hisVar,font='微软雅黑 24 normal',wraplength=800)
# wraplength=800(换行)
hislable.pack(side=BOTTOM,pady=30)
# 向下对齐
dobutton = Button(root,text='开始',font='楷体 24 normal',width=20,cursor='hand2',command=doClick)
# 新增宽度的改变和鼠标的形状的改变只看两种
dobutton.pack(side=BOTTOM,pady=30)
root.mainloop()
感谢大家的支持,关注,白嫖,评论!