关于Easygui的安装和简单图形界面Easygui的介绍(上)
9.multpasswordbox()
多输入框,显示时最后一个输入框为密码形式*
>>> from easygui import *
>>> msg='用户登录'
>>> title='PP'
>>> multpassword = ['登录平台','用户ID','密码']
>>> multvalues = []
>>> multvalues = multpasswordbox(msg,title,multpassword)
or
>>> import easygui as g
>>> g.multpasswordbox('用户登录','PP',['登录平台','用户ID','密码'])
10.textbox()
显示文本
第三个参数可以是字符串,列表,或元组
g.textbox(msg='',title='',text='')
11.diropenbox()
提供对话框,返回用户选择的目录名,default参数用于设置默认的打开目录
g.diropenbox(msg=None,title=None,default=None)
12.fileopenbox()
返回用户选择的文件名,若default默认参数是’*'即匹配所有格式的文件
g.fileopenbox(msg=None,title=None,default='*')
具体介绍参考下面easygui实例
1.猜猜萝卜心里想的数字:
import easygui as g
import random#调用随机数模块
secret = random.randint(1,10)#randint产生的随机数是左右皆为闭区间,而randrange是左闭右开
times = 3
guess = 0
while (guess != secret)and(times>0):
guess = g.integerbox('猜猜萝卜现在心里想的数字(1`10的整数): ','数字游戏',lowerbound=1,upperbound=10)
times-=1
if guess == secret:
g.msgbox(["卧槽,你是萝卜心里的蛔虫吗?\t","哼,猜中了也没有奖励"])
else:
if guess > secret:
g.msgbox("大了大了,这都猜不中,还有%d次机会"%times)
else:
g.msgbox("嘿,小了小了,你个傻子,还有%d次机会"%times)
if times > 0:
g.msgbox('再试一次吧:')
else:
g.msgbox('机会用光了哦,游戏结束')
g.msgbox('萝卜心里想的数字是:%d'%secret)
import os
import easygui as g
def show_result(dirs):
lines = 0
total = 0
text = ''
for i in source_list:
lines = source_list[i]
total+=lines
text+='【%s】源文件%d个,源代码%d行\n'%(i,file_list[i],lines)
title = '统计结果'
msg = '您目前共编写了%d行代码,完成进度:%.2f%%,离10万行代码还差%d行,请继续努力!'%(total,total/1000,100000-total)
g.textbox(msg,title,text)
def calculate_code(file_name):
lines = 0
with open(file_name,encoding='utf-8') as f:
print('正在分析文件:%s'%file_name)
for eachline in f:
lines+=1
return lines
def search_file(dirs):
os.chdir(dirs)
for each_file in os.listdir(os.curdir):
suffix = os.path.splitext(each_file)[1]
if suffix in target:
lines = calculate_code(each_file)
try:
file_list[suffix]+=1
except KeyError:
file_list[suffix]=1
try:
source_list[suffix]+=lines
except KeyError:
source_list[suffix]=lines
#两个try except语句的作用是字典键不存在,抛出KeyError,添加字典键
if os.path.isdir(each_file):
search_file(each_file)
os.chdir(os.pardir)
target = ['.py','.c','.java']
file_list={}
source_list={}
g.msgbox('请打开您存放代码的文件夹.....','统计代码量')
path=g.diropenbox('请选择您的代码库:')
search_file(path)
show_result(path)
可以不使用异常语句,这样改进:
def search_file(dirs):
os.chdir(dirs)
for each_file in os.listdir(os.curdir):
suffix = os.path.splitext(each_file)[1]
if suffix in target:
lines = calculate_code(each_file)
file_list[suffix]+=1
source_list[suffix]+=lines
if os.path.isdir(each_file):
search_file(each_file)
os.chdir(os.pardir)
target = ['.py','.c','.java']
file_list={'.py':0,'.c':0,'.java':0}
source_list={'.py':0,'.c':0,'.java':0}
g.msgbox('请打开您存放代码的文件夹.....','统计代码量')
path=g.diropenbox('请选择您的代码库:')
search_file(path)
show_result(path)
3.创建一个文件夹浏览框,让用户选择需要打开的文本文件,并显示出内容
import os
import easygui as g
path = g.fileopenbox('请选择您要打开的文件:',default='*.txt')
with open(path,encoding='utf-8')as f:#在后面加一个errors='ignore'甚至都能打开中文乱码文件
title = os.path.basename(path)
msg='文件【%s】内容如下:'%title
g.textbox(msg,title,f.read())
*4.实现一个用于登记用户账号信息的界面(为必填,要求一定有输入且非空格)
import easygui as g
msg='【*用户名】为必填项\n【*登录平台】为必填项\n【*密码】为必填项'
title=' 账号登录系统'
fieldnames=['*用户名','*登陆平台','QQ','*密码']
fieldvalues=g.multpasswordbox(msg,title,fieldnames)
while 1:
if fieldvalues==None:
break
errormsg = ''
for i in range(len(fieldnames)):
option = fieldnames[i].strip()
if fieldvalues[i].strip() == ''and option[0]=='*':
errormsg+=('【%s为必填项\n'%fieldnames[i])
if errormsg == '':
break
fieldvalues = g.multpasswordbox(errormsg,title,fieldnames)