python小游戏 ---- 恭喜中奖

313 阅读3分钟

本文已参与[新人创作礼]活动,一起开启掘金创作之路。

为了使广大的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()

22.jpg 感谢大家的支持,关注,白嫖,评论!