python 界面模块EasyGui详细介绍

EasyGui 的安装

pip install easygui

导入EasyGuid的3种方式

- import easygui

import easygui
easygui.msgbox("hi~")

- from easygui import * # 导入整个包,可以直接用函数,但是不推荐,容易污染程序的命名空间

from easygui import *
msgbox("hi~")

- import easygui as eg

import easygui as eg
eg.msgbox("hi~")

各种功能演示

import easygui
easygui.egdemo()

运行成功后将 Easygui 拥有的各种功能打印至控制台

默认参数和关键字参数

对于 EasyGui 的所有对话框而言,前两个参数都是 消息主体对话框标题

  • 默认参数 :默认参数使得可以尽可能少去设置参数,例如 msgbox()函数标题标题部分是可选的,因此调用 msgbox()函数的时候只需要指定一个消息参数即可。

import easygui as eg
eg.msgbox('你好啊~')

同样也可以指定 标题参数消息参数 ,例如:

import easygui as eg
eg.msgbox('你好啊~', 'hello')
  • 关键字参数 :假如需要使用一个按钮组件,但是不想指定标题参数(第二个参数),依然可以使用关键字参数的方法指定choices参数(第三个参数)的值,例如:

import easygui as eg

choices = ['愿意', '不愿意', '有时候愿意']
reply = eg.choicebox('你愿学习吗?', choices = choices)

使用其他组件

1、msgbox()

msgbox(msg='(Your message goes here)', title=' ', ok_button='OK', image=None, root=None)
  • msg :消息参数

  • title :标题参数

  • ok_button :按钮参数(默认参数),可以修改

eg.msgbox('hello!', ok_button='谢谢')

2、ccbox()

ccbox(msg='Shall I continue?', title=' ', choices=('Continue', 'Cancel'), image=None)
  • choices:提供一个选择:C[o]ntinueC[a]ncel, 并相应返回True 或者 FalseC[o]ntinue中的 [o] 表述快捷键,也就是说用户在键盘上(必须在英文输入状态下)敲一下 o 字符,就相当于单击 C[o]ntinue。当然不一定非得是C[o]ntinueC[a]ncel,可以是自定义的,例如:

import easygui as eg
import sys

if eg.ccbox('继续学习吗', choices=('继续[a]', '算了吧,睡觉了[e]')):
    eg.msgbox('还在学习啊')
else:
    sys.exit(0)

3、ynbox()

def ynbox(msg="Shall I continue?", title=" ",
          choices=("[<F1>]Yes", "[<F2>]No"), image=None,
          default_choice='[<F1>]Yes', cancel_choice='[<F2>]No'):

ccbox()函数一样,只是这里的默认的 choices 参数值不同而已,[F1]作为YES的快捷键使用

4、buttonbox()

def buttonbox(msg="",
              title=" ",
              choices=("Button[1]", "Button[2]", "Button[3]"),
              image=None,
              images=None,
              default_choice=None,
              cancel_choice=None,
              callback=None,
              run=True):

可以使用buttonbox()定义自己的一组按钮,当用户单击任意一个按钮的时候,buttonbox()函数返回按钮的文本内容。如果用户取消或关闭窗口,那么会返回默认选项(第一个选项)

5、indexbox()

def indexbox(msg="Shall I continue?", title=" ",
             choices=("Yes", "No"), image=None,
             default_choice='Yes', cancel_choice='No'):

基本与buttonbox()函数一样,区别就是当用户选择第一个按钮的时候返回索引值0,选择第二个按钮的时候返回索引值1

6、boolbox()

def boolbox(msg="Shall I continue?", title=" ",
            choices=("[Y]es", "[N]o"), image=None,
            default_choice='Yes', cancel_choice='No'):

如果第一个按钮被选择则返回 True,否则返回False

7、在buttonbox()中显示图片

当你调用一个 buttonbox() 函数(例如 msgbox(), ynbox(), indexbox() 等等)的时候,你还可以为关键字参数 image 赋值,这是设置一个 .gif 格式的图像(可以是.jpg、.gif、.png):

import easygui as g
g.buttonbox("大家说嗅嗅可爱吗?",image="xiuxiu.gif",choices=("可爱","不可爱","财迷"))

为用户提供一系列选项

buttonbox()的几个函数为用户提供了一个简单的按钮选项,单如果有很多选项,或者选项内容特别长的话,更好的策略是为他们提供一个可选择的列表。

1、choicebox()

def choicebox(msg="Pick an item", title="", choices=[], preselect=0,
              callback=None,
              run=True):

choicebox() 函数为用户提供了一个可选择的列表,使用序列(元组或列表)作为选项,这些选项会按照字母进行排序。

eg.choicebox(msg='你最喜欢的电影是什么?', title='', choices=['盗梦空间', '阿甘正传', '辛特勒名单'])

9、multchoicebox()

def multchoicebox(msg="Pick an item", title="", choices=[],
                  preselect=0, callback=None,
                  run=True):
  • multchoicebox()函数也是提供一个可选择的列表,与choicebox()不同的是,multchoicebox()支持用户选择0个,1个或者同时选择多个选项。

  • multchoicebox()函数也是使用序列(元组或列表)作为选项,这些选项显示前会按照不区分大小写的方法排好序。

eg.multchoicebox(msg='你最喜欢的电影是什么?', title='', choices=['盗梦空间', '阿甘正传', '辛特勒名单', '肖生克的救赎'])

让用户输入消息

1、enterbox()

def enterbox(msg="Enter something.", title=" ", default="",
             strip=True, image=None, root=None):
  • enterbox()函数为用户提供一个最简单的输入框,返回值为用户输入的字符串。

print(eg.enterbox(msg='请输入你最想说的一句话'))

返回

E:\python\python.exe C:/Users/huan4/Desktop/Python/python/d.py
你好啊!
  • 默认返回的值会自动去除首尾的空格,如果需要保留首尾空格的话请设置参数 strip = False

2、integerbox()

def integerbox(msg="", title=" ", default=None,
               lowerbound=0, upperbound=99, image=None, root=None):
  • integerbox()函数为用户提供一个简单的输入框,用户只能输入范围内(lowerbound参数设置的最小值,upperbound参数设置的最大值)的整型数值,否则会要求用户重新输入。

eg.integerbox(msg='请输入你喜欢的一个数字(1~10)', lowerbound=1, upperbound=10)

3、multenterbox()

def multenterbox(msg="Fill in values for the fields.", title=" ",
                 fields=[], values=[], callback=None, run=True):

multenterbox()函数为用户提供多个简单的输入框,要注意以下几点:

  • 如果用户输入的值比选项少的话,则返回列表中的值用空字符串填充为用户输入的选项。

  • 如果用户输入的值比选项多的话,则返回的列表中的值将截断为选项的数值。

  • 如果用户取消操作,则返回域中列表的值或者None值。

(0)

相关推荐