Gooey我的项目反对用一行代码将(简直)任何Python 2或3控制台程序转换为GUI应用程序。
1.疾速开始
开始之前,你要确保Python和pip曾经胜利装置在电脑上。
如果你用Python的目标是数据分析,能够间接装置Anaconda,它内置了Python和pip.
此外,举荐大家用VSCode编辑器,它有许多的长处。
请抉择以下任一种形式输出命令装置依赖:
- Windows 环境 关上 Cmd (开始-运行-CMD)。
- MacOS 环境 关上 Terminal (command+空格输出Terminal)。
- 如果你用的是 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编程学习圈,或是返回编程学习网,理解更多编程技术常识,还有大量干货学习材料能够支付!