有过tkinter使用经验的朋友们都会感叹,用tk控件来设计一个优美的界面,真的好难啊!既要让界面漂亮,又要让设计好每个控件的大小合适,还要兼顾每个控件的摆放位置,费时费力非常的繁琐。
小编在浏览网页的时候,突然发现一个GUI神器,叫做Gooey,号称能把任何控制台应用程序转换为非常美观的的GUI应用程序。获赞9000颗星,非常厉害。
1 如何安装
对于Gooey的安装非常的方便,大家只需要在终端用pip安装即可。pip3 install Gooey
对于python3.5以上都是支持的,大家可以放心的安装。这个库安装比较慢,大家可以用清华的镜像路径安装。
pip3 install -i https://pypi.tuna.tsinghua.edu.cn/simple Gooey
2 如何使用
那么,Gooey要如何使用呢?我们首先来看一下一个小小的程序:
上图程序中,我们从Gooey库中导入了Gooey函数和GooeyParser类;
Gooey函数作为装饰器来进行全局变量的设置;
GooeyParser类用来添加我们所需要的控件信息,并进行解析;
这里,由于用到了装饰器的知识点,所以为大家简单的介绍一下装饰器的内容。
3啥是装饰器
装饰器是Python特有的一个概念,用的好事半功倍。很多牛逼的开源库里面都大量的用装饰器,可以节省很多重复的代码,高效美观,非常Pythonic。
装饰器本质上也是一个python的函数,它可以让其他的函数在不改变的情况下,增加了额外功能。打个比方说我们都穿袜子,袜子可以保暖,可以吸汗,但是有了袜子还不能走路,于是我们在外面穿了鞋子,在不影响袜子的作用情况下,我们有了鞋子帮助我们走路。
用个小例子来看一下装饰器的作用:
上述的函数中,我们可以看到,装饰器函数debug;
通过传入say函数,将say函数包裹起来;
然后返回包裹处理后的wrapper函数;
最后,程序执行的结果可以看出,在没有改变say函数的基础上,输出了装饰器添加的功能;
如果大家想对装饰器有更深入的了解,可以去以前写的(4 源码解读
我们回到Gooey函数中设置了“program_name”、“language”等参数,它可以设置更多的参数,例如初始界面的大小,本地图标的地址等等。
对于GooeyParser类,它的用法类似于argparse库,上述的函数中,我们添加了一个文件选择的控件和日期选择的控件,此外,还有Dropdown(下拉框)、Counter(计数器)等控件。
函数运行的界面如下图所示:
可以看到,程序只需要不断的添加我们需要的控件,程序便会自动帮助我们美化好控件的位置,而且,Gooey提供的控件更加的美观,更加的编辑,我们只需要几行代码就可以创建一个GUI控件,不需要再设置控件大小,控件的位置,等等复杂的操作。
5实战运用
那么,Gooey如何和我们自己写的程序相结合呢?下面,小编结合一个应用小案例,来秀一下。用的案例是前几天发的(,小编利用Gooey和Instagram滤镜来为大家进行展示,程序如下图所示。
上述函数中,我们选择了文件选择框的控件,从本地选择图片;
然后利用“Dropdown”控件,来选择滤镜的类型;
利用“DirChooser”控件来选择图片的保存路径;
我们选择gotham滤镜时,程序便执行我们的gotham滤镜程序,处理图片,将处理后的图片保存到“DirChooser”选择的地址。
有兴趣的同学可以读一下这个库的源码,其实它把wxpython进行了进一步的封装,底层还是调用wxpython。但是作者封装了之后使用起来确实简便很多,有兴趣的小伙伴赶紧试一下。
end
近期十大热门:
每个程序员都是从菜鸟开始成长起来的,没有人一开始就是程序员高手。菜鸟爱编程,专注于分享趣味的编程技巧,不限于Java, Python ,Go, Javascript等语言,让菜鸟爱上编程,进阶成为高手。