爱玩科技网
您的当前位置:首页Python模块EasyGui详细介绍

Python模块EasyGui详细介绍

来源:爱玩科技网
Python模块EasyGui详细介绍

在Windows想⽤Python开发⼀些简单的界⾯,所以找到了很容易上⼿的EasyGui库。下⾯就分享⼀下简单的使⽤吧。接下来,我将从简单,到复杂⼀点点的演⽰如何使⽤这个模块。希望能给刚接触easygui的你⼀点帮助:根据需求,EasyGui在buttonbox()上建⽴了⼀系列的函数供调⽤。1、msgBox()

msgbox(msg='(Your message goes here)', title=' ', ok_button='OK', image=None, root=None)

msgbox() 显⽰⼀个消息和提供⼀个\"OK\"按钮,你可以指定任意的消息和标题,你甚⾄可以重写\"OK\"按钮的内容。 以下是 msgbox() 的实例函数:#!/usr/bin/env python# -*- coding:utf-8 -*-# __Author__ = \"Ma Qing\"# __date__ = \"2017/03/31\"

# __Desc__ = ⼀个最简单的类似于Java的MessageBox的⼩窗⼝import easygui as g

#对于⼤部分的EasyGui函数都有默认参数,⼏乎所有的组件都会显⽰⼀个消息和标题。#标题默认是空字符串,信息通畅有⼀个简单的默认值

#⽐如msgbox()函数标题部分的参数就是可选的,所以你调⽤msgbox的时候可以指定⼀个消息参数,例如:msg = g.msgbox(\"Hello Easy GUI\")#当然你也可以指定信息参数和标题参数

title = g.msgbox(msg=\"我⼀定要学会编程!\",title=\"标题部分\",ok_button=\"加油\")2、ccbox()

ccbox(msg='Shall I continue?', title=' ', choices=('Continue', 'Cancel'), image=None)

ccbox() 提供⼀个选择:Continue 或者 Cancel,并相应的返回 1(选中Continue)或者 0(选中Cancel)。注意 ccbox() 是返回整型的 1 或 0,不是布尔类型的 True 或False。但你仍然可以这么写:import sys

import easygui as g

if g.ccbox(\"亲爱的还玩吗?\",choices=(\"还要玩!\",\"算了吧/(ㄒoㄒ)/~~\")): g.msgbox(\"还是不玩了,快睡觉吧!\")else:

sys.exit(0)3、ynbox()

这个函数和ccbox()功能⼀模⼀样4、buttombox()

buttonbox(msg='', title=' ', choices=('Button1', 'Button2', 'Button3'), image=None, root=None)可以使⽤ buttonbox() 定义⾃⼰的⼀组按钮,buttonbox() 会显⽰⼀组你定义好的按钮。

当⽤户点击任意⼀个按钮的时候,buttonbox() 返回按钮的⽂本内容。如果⽤户取消取消或者关闭窗⼝,那么会返回默认选项(第⼀个选项)。请看例⼦:import easygui as g

g.buttonbox(msg=\"你喜欢下⾯哪种⽔果?\",title=\"\",choices=(\"西⽠\",\"苹果\",\"草莓\"))5、indexbox()

indexbox(msg='Shall I continue?', title=' ', choices=('Yes', 'No'), image=None)

基本跟上⾯⼀样,区别就是当⽤户选择第⼀个按钮的时候返回序列号0,选择第⼆个按钮时候返回序列号1。6、boolbox()

boolbox(msg='Shall I continue?', title=' ', choices=('Yes', 'No'), image=None) 如果第⼀个按钮被选中则返回 1,否则返回 0。7、在buttonbox()中显⽰图⽚

当你调⽤⼀个 buttonbox 函数(例如 msgbox(), ynbox(), indexbox() 等等)的时候,

你还可以为关键字参数 image 赋值,这是设置⼀个 .gif 格式的图像(注意仅⽀持 GIF 格式哦):import easygui as g

g.buttonbox(\"⼤家说嗅嗅可爱吗?\",image=\"xiuxiu.gif\",choices=(\"可爱\",\"不可爱\",\"财迷\"))

8、choicebox()

choicebox(msg='Pick something.', title=' ', choices=())

按钮组件⽅便提供⽤户⼀个简单的按钮选项,但如果有很多选项,或者选项的内容特别长的话,更好的策略是为它们提供⼀个可选择的列表。choicebox() 为⽤户提供了⼀个可选择的列表,使⽤序列(元祖或列表)作为选项,这些选项显⽰前会按照不区分⼤⼩写的⽅法排好序。 另外还可以使⽤键盘来选择其中⼀个选项(⽐较纠结,但⼀点⼉都不重要):

例如当按下键盘上的\"g\"键,将会选中的第⼀个以\"g\"开头的选项。再次按下\"g\"键,则会选中下⼀个以\"g\"开头的选项。

在选中最后⼀个以\"g\"开头的选项的时候,再次按下\"g\"键将重新回到在列表的开头的第⼀个以\"g\"开头的选项。如果选项中没有以\"g\"开头的,则会选中字符排序在\"g\"之前(\"f\")的那个字符开头的选项。如果选项中没有字符的排序在\"g\"之前的,那么在列表中第⼀个元素将会被选中。 综合我们之前学习的⽂件功能,举个通俗的例⼦import easygui as g

msg = \"选择你喜欢的⼀种业余⽣活\"title = \"\"

choicess_list = [\"看书\",\"游泳\",\"骑⾃⾏车\",\"玩游戏\"]reply = g.choicebox(msg,choices=choicess_list) 9、mutchoicebox()

multchoicebox(msg='Pick as many items as you like.', title=' ', choices=(), **kwargs)

multchoicebox() 函数也是提供⼀个可选择的列表,与 choicebox() 不同的是,multchoicebox() ⽀持⽤户选择 0 个,1 个或者同时选择多个选项。multchoicebox() 函数也是使⽤序列(元祖或列表)作为选项,这些选项显⽰前会按照不区分⼤⼩写的⽅法排好序。import easygui as g

g.multchoicebox(msg=\"请选择你爱吃哪些⽔果?\",title=\"\",choices=(\"西⽠\",\"⾹蕉\",\"苹果\",\"梨\"))10、enterbox()

enterbox(msg='Enter something.', title=' ', default='', strip=True, image=None, root=None)enterbox() 为⽤户提供⼀个最简单的输⼊框,返回值为⽤户输⼊的字符串。

默认返回的值会⾃动去除⾸尾的空格,如果需要保留⾸尾空格的话请设置参数 strip=False。import easygui as g

g.enterbox(msg=\"请说出此时你的⼼⾥话\",title=\"⼼⾥悄悄话\")11、interbox()

integerbox(msg='', title=' ', default='', lowerbound=0, upperbound=99, image=None, root=None, **invalidKeywordArguments)

integerbox() 为⽤户提供⼀个简单的输⼊框,⽤户只能输⼊范围内(lowerbound参数设置最⼩值,upperbound参数设置最⼤值)的整型数值,否则会要求⽤户重新输⼊。import easygui as g

g.integerbox(msg=\"请输⼊您的得分\",title=\"分数计\",lowerbound=0,upperbound=100)12、mulenterbox()

multenterbox(msg='Fill in values for the fields.', title=' ', fields=(), values=())multenterbox() 为⽤户提供多个简单的输⼊框,要注意以下⼏点:

如果⽤户输⼊的值⽐选项少的话,则返回列表中的值⽤空字符串填充⽤户为输⼊的选项。如果⽤户输⼊的值⽐选项多的话,则返回的列表中的值将截断为选项的数量。如果⽤户取消操作,则返回域中的列表的值或者None值

1 import easygui as g 2

3 msg = \"请填写⼀下信息(其中带*号的项为必填项)\" 4 title = \"账号中⼼\"

5 fieldNames = [\"*⽤户名\",\"*真实姓名\",\"固定电话\",\"*⼿机号码\",\"QQ\",\"*Email\"] 6 fieldValues = []

7 fieldValues = g.multenterbox(msg,title,fieldNames) 8 #print(fieldValues) 9 while True:

10 if fieldValues == None :11 break12 errmsg = \"\"

13 for i in range(len(fieldNames)):14 option = fieldNames[i].strip()

15 if fieldValues[i].strip() == \"\" and option[0] == \"*\":16 errmsg += (\"【%s】为必填项 \" %fieldNames[i])17 if errmsg == \"\":18 break

19 fieldValues = g.multenterbox(errmsg,title,fieldNames,fieldValues)20 print(\"您填写的资料如下:%s\" %str(fieldValues))13、passwordbox()

passwordbox(msg='Enter your password.', title=' ', default='', image=None, root=None)

passwordbox() 跟 enterbox() 样式⼀样,不同的是⽤户输⼊的内容⽤\"*\"显⽰出来,返回⽤户输⼊的字符串:

import easygui as g

g.passwordbox(msg=\"请输⼊您的密码\")import easygui as gmsg = \"请输⼊你的密码\"

user_password = g.passwordbox(msg)print(str(user_password))14、multpasswordbox()

multpasswordbox(msg='Fill in values for the fields.', title=' ', fields=(), values=())

multpasswordbox() 跟 multenterbox() 使⽤相同的接⼝,但当它显⽰的时候,最后⼀个输⼊框显⽰为密码的形式(\"*\"):import easygui as g

msg = \"请输⼊⽤户名和密码\"title = \"⽤户登录接⼝\"user_info = []

user_info = g.multpasswordbox(msg,title,(\"⽤户名\",\"密码\"))print(user_info)15、textbox()

textbox(msg='', title=' ', text='', codebox=0)

textbox() 函数默认会以⽐例字体(参数 codebox=1 设置为等宽字体)来显⽰⽂本内容(会⾃动换⾏哦),这个函数适合⽤于显⽰⼀般的书⾯⽂字。注:text 参数(第三个参数)可以是字符串类型,列表类型,或者元祖类型。 16、diropenbox()

diropenbox(msg='',title='',default='')

该函数⽤于提供⼀个对话框,返回⽤户选择的⽬录名,该⽬录名是带有完整的路径的选择Cancel的话,返回值默认为Noneimport easygui

msg = '选择⼀个⽂件,将会返回该⽂件的完整的⽬录'title = '⽂件选择对话框'default = r'F:flappy-bird'

full_file_path = easygui.diropenbox(msg,title,default)print('选择的⽂件的完整的路径为:'+str(full_file_path))

因篇幅问题不能全部显示,请点此查看更多更全内容