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
@Gooey
def 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 asyncio
from scihub import SciHub
from gooey import Gooey, GooeyParser
def 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()
@Gooey
def 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 编程学习圈,或是返回编程学习网,理解更多编程技术常识,还有大量干货学习材料能够支付!