关于python的easygui使用体验

关于python的easygui使用体验

# @Author   :   Miotsuki
# @Date   :   2021/10/5

import random
import easygui as box

# 主界面
def home_page():
    choices = ("剪刀", "石头", " 布 ")
    return box.buttonbox(title = "石头剪刀布", choices=choices, msg=None,image='home_page.jpg')

# 判断用户和电脑的输赢情况
def judge(player,computer):
        # 最简单的解决方式往往能处理最复杂的问题
        if player == "石头":
            if computer == "布":
                return '你输了'
            else:
                return '你赢了'
        elif player == "布":
            if computer == "剪刀":
                return '你输了'
            else:
                return '你赢了'
        elif player == "剪刀":
            if computer == "石头":
                return '你输了'
            else:
                return '你赢了'

# 结果界面
def the_results(choice):
    # 电脑随机一个选项(公平,公正,公开)
    computer_choice = random.choice(("剪刀", "石头", "布"))
    # 如果用户选择和电脑随机出来结果相同,则判断为平局
    if choice == computer_choice:
        msg = "平局"
    # 不相同就去判断谁赢了
    else:
        msg = judge(choice,computer_choice)
    # 编辑贴图
    images = (f'{computer_choice}.png',f'{choice}.png')
    # 修改提示信息
    if msg == '你赢了':
        ch = '太棒了!!!'
    else:
        ch = '好吧!'
    # 这里出了bug,如果用户直接点机关闭的话会继续进行,所以判断用户是否点击了三个选项其中之一
    if msg == None :
        exit()
    # 显示界面
    box.buttonbox(title = "石头剪刀布",msg= msg,images=images,choices=(f"{ch}", ))

# 是否继续界面
def go_on():
     if not box.ccbox(title = "石头剪刀布",msg="你还要继续吗?",choices = ("继续", "算了")):
        return False
     else:
        return True

if __name__ == '__main__':
    # 设置一个flag来判断是否还继续
    flag = True
    while flag:
        choice = str(home_page()).strip()
        the_results(choice)
        flag = go_on()

下面是运行截图
在这里插入图片描述
image.png
image.png

总结:

easygui有显著的问题,太简单了,以至于很多东西都不够完善,无论是buttonbox还是msgbox都只有简单的流式布局,而且没有参数去设置,没法进行美观设计,不够实用,不能给用户好的人机交互体验。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
Python easygui 是一个基于 Tkinter 的 Python 第三方库,它可以帮助我们快速创建图形用户界面(GUI),让我们的 Python 程序具有更良好的交互体验。 除了基本的 easygui 使用,还有一些高级功能值得我们学习,以下是一些高级使用方法: 1. 处理用户输入 使用 easygui 可以很方便地获取用户输入的文本、数字、密码等信息,但是有时候我们需要对用户输入进行一些校验或者处理。这时候我们可以使用 easygui 的 enterbox 函数,它可以接受一个函数作为参数,用来处理用户输入的数据。下面是一个例子: ```python import easygui def validate_input(input_value): if input_value.isnumeric(): return int(input_value) else: return None input_value = easygui.enterbox(msg='请输入数字', title='输入框', default='', validate=validate_input) ``` 在上面的例子中,我们定义了一个 validate_input 函数,它用来对用户输入进行校验,如果输入的是数字,则返回数字的整数形式,否则返回 None。我们将这个函数作为 validate 参数传给了 enterbox 函数,这样 easygui 就会在显示输入框之前先调用 validate_input 函数,对用户输入进行校验。 2. 显示自定义图标 默认情况下,easygui 显示的图标是 Python 的标志,但是我们也可以使用自己的图标。我们可以使用 easygui 的 msgbox 函数来显示一个带有自定义图标的提示框。下面是一个例子: ```python import easygui easygui.msgbox(msg='这是一个带有自定义图标的提示框', title='提示框', ok_button='确定', image='path/to/icon.png') ``` 在上面的例子中,我们将 image 参数设为我们自己的图标路径,easygui 就会自动将这个图标显示在提示框上。 3. 显示 HTML 内容 如果我们需要在提示框中显示 HTML 内容,可以使用 easygui 的 codebox 函数。codebox 函数可以接受一个字符串作为参数,用来显示代码或者 HTML 内容。下面是一个例子: ```python import easygui html_code = '<h1>Hello, World!</h1><p>This is an example of displaying HTML content.</p>' easygui.codebox(msg='HTML 内容', title='HTML 内容', text=html_code, language='html') ``` 在上面的例子中,我们将 text 参数设为包含 HTML 代码的字符串,easygui 就会自动将这个字符串解析为 HTML 内容,并在提示框中显示出来。 以上是 easygui 的一些高级使用方法,希望对你有所帮助。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值