import easygui as g
def msgbox(msg='消息参数',title='标题参数,默认空字符串',ok_button='ok,按钮')
我们在调用时可以通过重写关键字参数,更改g.msgbox(msg='消息参数',title='标题参数,默认空字符串',ok_button='啦啦啦')
ccbox(msg=’消息’,title=’ ‘,choices=(‘Continue’,’Cancel’),image=None)
ccbox()返回的是整型的1和0,不是布尔类型
if ccbox('要再来一次吗?', choices=('要啊要啊^_^', '算了吧T_T')):
msgbox('不给玩了,再玩就玩坏了......')
else:
sys.exit(0) # 记得先 import sys 哈
ynbox(msg=’消息’,title=’ ‘,choices=(‘Yes’,’No’),image=None)
ynbox返回的是布尔类型
可以使用buttonbox(msg=”,title=”,choices=(‘a’,’b’,’c’),image=None,root=None)定义自己的一组按钮,返回文本内容,点击x后返回None,有3个选项
indexbox(msg=”,title=”,choices=(‘a’,’b’),image=None,root=None)返回用户选择的序列号0-
boolbox(msg=”,title=”,choices=(‘a’,’b’),image=None,root=None)只有两个选项,选第一个按钮返回1,其他返回0
choicebox(msg = ‘Pick something’,title = ”,choices=())
添加可选择的列表,使用元组或列表做为选项,不区分大小写的排序
multchoicebox(msg = ‘Pick as many items as you like’,title = ”, choices= (),**kwargs),与choicebox不同的是,multchoicebox()可以选择0个,1个或多个选项,返回文本列表
让用户可以输入信息:
enterbox(msg = ‘Enter something.’,title = ”, default = ”, strip = True,image = None,root = None)
提供一个简单的输入框,返回值为用户输入的字符串。默认自动去除首尾的空格。default为默认输入的内容
integerbox(msg=”,title=”,default=”,lowerbound=0,upperbound=99,image=None,**invalidKeywordArauments)
integerbox()为用户提供简单输入框,用户只能输入范围内的整形数值,否则要求用户重新输入。
multenterbox(msg=’Fll in values for the filelds’, title =”,fields=(),values=())
values是默认值元组,最终返回输入信息组成的一个列表
multenterbox(‘A项目\nB项目\nC项目\nD项目’,’测试多项输入框’,(‘A项目’,’B项目’,’C项目’,’D项目’),(‘小甲鱼’,))—-[‘小甲鱼’, ‘小鱿鱼’, ‘大水鱼’, ‘嘿嘿’]测试
passwordbox(msg=’Enter your password.’,title=”,default=”,image=None,root=None)
用户输入的内容用*显示,返回输入字符串
multpasswordbox(msg=’Fll in values for the fields.’,title=’’,fields=(),values=())
与multenterbox接口一样,但显示时,最后一个输入显示密码形式
显示文本
textbox(msg=”,title=”,text=”,codebox=0)
textbox()默认等比例显示文本,codebox=1等宽字体
text参数可以是字符串类型,列表类型,元组类型
返回字符串
目录与文件
diropenbox(msg=None,title=None,default=None)
用于提供一个对话框,返回用户选择的目录名(带完整路径),default用于设置默认的打开目录(确认存在)
fileopenbox(msg=None,title=None,default=’*’,filetypes=None)
返回用户选择的文件名(带完整路径),选择Cancel返回None
-default 指定一个默认路径,通常包含一个或多个通配符
默认参数’*’,匹配所有格式文件
例:default=”c:/profile/*.py”显示c:\profile下的所有python文件
default = “c:/profile/test*.py”显示c:\profile下的所有以test开头python文件
filetypes参数可以是包含文件掩码的字符串列表,filetypes=[“*.txt”]
可以是字符串列表,列表的最后一项字符串是文件类型的描述,
filetypes=[“.css”,[“.html”,”*htm”,”HTML files”]]
filesavebox(msg=None,title=None,default=”“,filetypes=None)
提供一个对话框,让用户选择文件需要保存的路径(完整路径),
default参数应该包含一个文件名(例如当前需要保存的文件名),也可设置为空,或包含一个文件格式掩码的通配符
filetypes参数同上
记住用户设置
为了实现对用户的设置进行存储和恢复这一过程,EasyGui 提供了一个叫做 EgStore 的类。为了记住某些设置,你的应用程序必须定义一个类(暂时称之为”设置”类,尽管你随意地使用你想要的名称设置它)继承自 EgStore 类。
然后你的应用程序必须创建一个该类的对象(暂时称之为”设置”对象)。
设置类的构造函数(init 方法)必须初始化所有的你想要它所记住的那些值。
一旦你这样做了,你就可以在”设置”对象中通过设定值去实例化变量,从而很简单地记住设置。之后使用 settings.store() 方法在硬盘上持久化设置对象。
下面是创建一个”设置”类的例子:
#-----------------------------------------------------------------------
# create "settings", a persistent Settings object
# Note that the "filename" argument is required.
# The directory for the persistent file must already exist.
#-----------------------------------------------------------------------
settingsFilename = os.path.join("C:", "FishCApp", "settings.txt") # Windows example
settings = Settings(settingsFilename)
下面是使用”设置”对象的例子:
# we initialize the "user" and "server" variables
# In a real application, we'd probably have the user enter them via enterbox
user = "奥巴马"
server = "白宫"
# we save the variables as attributes of the "settings" object
settings.userId = user
settings.targetServer = server
settings.store() # persist the settings
# run code that gets a new value for userId
# then persist the settings with the new value
user = "小甲鱼"
settings.userId = user
settings.store()
使用 EasyGui 编写 GUI 程序,有时候难免会产生异常。当然这取决于你如何运行你的应用程序,当你的应用程序崩溃的时候,堆栈追踪可能会被抛出,或者被写入到 stdout 标准输出函数中。
EasyGui 通过 exceptionbox() 函数提供了更好的方式去处理异常,异常出现的时候,exceptionbox() 会显示堆栈追踪在一个 codebox() 中并且允许你做进一步的处理。
exceptionbox() 很容易使用,下面是一个例子:
try:
print('I Love FishC.com!')
int('FISHC') # 这里会产生异常
except:
exceptionbox()