Gooey我的项目反对用一行代码将(简直)任何Python 2或3控制台程序转换为GUI应用程序。

1.疾速开始

开始之前,你要确保Python和pip曾经胜利装置在电脑上。

如果你用Python的目标是数据分析,能够间接装置Anaconda,它内置了Python和pip.

此外,举荐大家用VSCode编辑器,它有许多的长处。

请抉择以下任一种形式输出命令装置依赖

  1. Windows 环境 关上 Cmd (开始-运行-CMD)。
  2. MacOS 环境 关上 Terminal (command+空格输出Terminal)。
  3. 如果你用的是 VSCode编辑器 或 Pycharm,能够间接应用界面下方的Terminal。

(形式一)装置Gooey的最简略办法是通过 PIP:

pip install Gooey

(形式二)或者,能够通过将我的项目克隆到本地目录来装置Gooey

git clone https://github.com/chriskiehl/Gooey.git

如果你的网络不反对从GitHub克隆,请在Python实用宝典上回复:Gooey 下载我的项目源代码。

解压后进入该文件夹,运行 setup.py:

python setup.py install

2.应用办法

Gooey 通过将一个简略的装璜器附加到主函数上,而后应用GooeyParser可将你所有须要用到的参数可视化为文本框、抉择框甚至是文件抉择框。

比方在scihub文献下载的文章中,咱们须要输出两个参数:1.关键词,2.下载篇数,应用Gooey能够这么改:

from gooey import Gooey, GooeyParser@Gooeydef main():    parser = GooeyParser(description="中文环境可用的scihub下载器 - @Python实用宝典")    parser.add_argument('path', help="下载门路", widget="DirChooser")    parser.add_argument('keywords', help="关键词")    parser.add_argument('limit', help="下载篇数")    args = parser.parse_args()    search(args.keywords, int(args.limit), args.path)

GooeyParser 和 ArgumentParser 一样,应用 add_argument 就能够减少输出参数,不同的是 GooeyParser 提供了可视化的选项:

parser.add_argument('path', help="下载门路", widget="DirChooser")

这一行代码,widget 参数给 args.path 变量提供了一个目录选择器(widget="DirChooser" ),help参数用于揭示用户该选择器的作用,成果如下:

当你不提供widget参数时,程序默认应用文本输入框。

parser.add_argument('keywords', help="关键词")parser.add_argument('limit', help="下载篇数")

Gooey会主动编排你的参数,因而你不须要放心各个文本框或抉择框的显示问题。代码中的:

args = parser.parse_args()search(args.keywords, int(args.limit), args.path)

args = parser.parse_args() 能够将用户输出的所有文本转化为对应对象的变量值,通过 args.var 能够间接提取对应的变量值。

这个简略的可视化程序残缺代码及成果如下:

上滑查看更多代码

import asynciofrom scihub import SciHubfrom gooey import Gooey, GooeyParserdef search(keywords: str, limit: int, path: str):    """    搜寻相干论文并下载    Args:        keywords (str): 关键词        limit (int): 篇数        path (str): 下载门路    """    sh = SciHub()    result = sh.search(keywords, limit=limit)    print(result)    loop = asyncio.get_event_loop()    # 获取所有须要下载的scihub直链    tasks = [sh.async_get_direct_url(paper["url"]) for paper in result.get("papers", [])]    all_direct_urls = loop.run_until_complete(asyncio.gather(*tasks))    print(all_direct_urls)    # 下载所有论文    loop.run_until_complete(sh.async_download(loop, all_direct_urls, path=path))    loop.close()@Gooeydef main():    parser = GooeyParser(description="中文环境可用的scihub下载器 - @Python实用宝典")    parser.add_argument('path', help="下载门路", widget="DirChooser")    parser.add_argument('keywords', help="关键词")    parser.add_argument('limit', help="下载篇数")    args = parser.parse_args()    search(args.keywords, int(args.limit), args.path)main()

你也齐全能够应用本人的程序进行图形界面化,这无关紧要。

成果如下:

3.反对的widget组件

所有反对的widget组件如下:

1.勾选框 widget="CheckBox" 

2.下拉框 widget="DropDown"

3.互斥抉择框 widget="RadioGroup"

4.各种指标类型的抉择框

文件抉择框 widget="FileChooser"\
目录抉择框 widget="DirChooser"\
多文件抉择框 widget="MultiFileChooser"\
文件保留目录 widget="FileSaver"

5.日期/工夫选择器 widget="DateChooser/TimeChooser"

6.明码输入框 wiget="PasswordField"

7.多选列表框 widget="Listbox"

8.色彩选择器 widget="ColourChooser"

9.可过滤的下拉框 widget="FilterableDropdown"

10.滑片 widget="Slider"

4.打包

在所有都测试结束后应用失常后,你能够通过 pyinstaller 将这个可视化程序打包成exe可执行文件。

1.编写 PyInstaller buildspec

PyInstaller应用 buildspec 来确定如何捆绑我的项目。你能够在Python实用宝典后盾回复 buildspec下载 build.spec.txt.

下载后你只须要改两行代码:

如下所示:

在门路后面带r,能够不必输出两个斜杆 '\' 哦。

2.执行打包命令

为了可能应用 PyInstaller, 咱们须要应用pip装置这个模块:

pip install pyinstaller

而后进入 build.spec.text 所在文件夹,执行以下命令打包程序:

pyinstaller build.spec.txt

打包实现后会在以后文件夹下生成一个dist文件夹,外面就蕴含了你打包生成的可执行文件,打包胜利。

咱们的文章到此就完结啦,如果你感觉文章还不错,欢送关注公众号:Python编程学习圈,或是返回编程学习网,理解更多编程技术常识,还有大量干货学习材料能够支付!