当前位置: 首页 > 科技观察

使用一行代码将Python程序转换为GUI应用程序

时间:2023-03-20 23:54:06 科技观察

Gooey项目支持使用一行代码将(几乎)任何Python2或3控制台程序转换为GUI应用程序。1.快速入门在开始之前,您需要确保您的计算机上已经成功安装了Python和pip。如果没有,可以访问这篇文章:超详细的Python安装指南进行安装。如果使用Python进行数据分析,可以直接安装Anaconda:Python数据分析挖掘的好帮手——Anaconda,内置Python和pip。另外,推荐大家使用VSCode编辑器,它有很多优点:Python编程的最佳拍档——VSCode详解指南。请选择以下方式之一输入命令安装依赖项:Windows环境打开Cmd(开始-运行-CMD)。MacOS环境打开Terminal(command+空格进入Terminal)。如果您使用的是VSCode编辑器或Pycharm,则可以直接使用界面底部的Terminal。(方法一)安装Gooey最简单的方法是通过pip:pipGooey(方法二)或者,你可以将项目克隆到本地目录安装Gooeygitclonehttps://github.com/chriskiehl/Gooey.git解压并进入文件夹,运行setup.py:pythonsetup.pyinstall2.如何使用Gooey,在main函数上附加一个简单的装饰器,然后使用GooeyParser将你需要的所有参数可视化为文本框、选择框甚至文件选择框。比如scihub文献下载的文章,我们需要输入两个参数:1.关键词,2.下载次数,使用Gooey可以这样改:gooeyGooey,GooeyParser:parser=GooeyParser(description=)parser。add_argument(,help=,widget=)parser.add_argument(,help=)parser.add_argument(,help=)args=parser.parse_args()搜索(args.keywords,int(args.limit),args.path)GooeyParser和ArgumentParser一样,使用add_argument添加输入参数,不同的是GooeyParser提供了一个可视化选项:parser.add_argument(,help=,widget=)这行代码,widget参数为args.path变量提供了一个目录选择器(widget="DirChooser"),help参数用于提醒用户选择器的作用,作用如下:当你不提供widget参数时,程序默认使用文本输入框。parser.add_argument(,help=)parser.add_argument(,help=)Gooey会自动格式化您的参数,因此您无需担心单个文本框或选择框的显示。代码中:args=parser.parse_args()search(args.keywords,int(args.limit),args.path)args=parser.parse_args()可以将用户输入的所有文本转化为变量值对应的对象,可以直接通过args.var提取对应的变量值。这个简单的可视化程序的完整代码和效果如下:importasynciofromscihubimportSciHubfromgooeyimportGooey,GooeyParser:"""搜索相关论文并下载args:keywords(str):keywordslimit(int):文章数量路径(str):下载路径"""sh=SciHub()result=sh.search(keywords,limit=limit)print(result)loop=asyncio.get_event_loop()#获取所有需要下载的scihub直连任务=[sh.async_get_direct_url(paper["url"])forpaperinresult.get("papers",[])]all_direct_urls=loop.run_until_complete(asyncio.gather(*tasks))print(all_direct_urls)#循环下载所有论文.run_until_complete(sh.async_download(loop,all_direct_urls,path=path))loop.close()@Gooey:parser=GooeyParser(description="中文环境可用的scihub下载器-@Python实战宝典")parser.add_argument('path',help="下载路径",widget="DirChooser")parser.add_argument('keywords',help="Keywords")parser.add_argument('limit',help="NumberofDownloads")args=parser.parse_args()search(args.关键字,int(args.limit),args。路径)主要()如果你想让这段代码完美运行,请结合你不得不知道的python超级文学批量搜索下载工具的scihub.py。您也可以使用自己的图形界面程序,这是无关紧要的。效果如下:3.支持所有支持的widget组件如下:1.Checkboxwidget="CheckBox"2.下拉框widget="DropDown"3.互斥选择框widget="RadioGroup"4.Selection各种目标类型的框文件选择框小部件=“FileChooser”目录选择框小部件=“DirChooser”多文件选择框小部件=“MultiFileChooser”文件保存目录小部件=“FileSaver”5.日期/时间选择器小部件=“DateChooser/TimeChooser"6.密码输入框wiget="PasswordField"7.多选列表框widget="Listbox"8.颜色选择器widget="ColourChooser"9.可过滤下拉框widget="FilterableDropdown"10.滑块widget=《滑块》4.打包一切都经过测试并正常使用后,就可以通过pyinstaller将这个可视化程序打包成一个exe可执行文件了。1.编写PyInstaller构建规范PyInstaller使用构建规范来确定如何捆绑项目。可以在Python实战宝典后台回复buildspec下载build.spec.txt。下载后只需要改两行代码:如下图:路径前加r,不需要输入两个斜杠'\'。2、执行打包命令为了能够使用PyInstaller,我们需要使用pip来安装这个模块:pipinstallpyinstaller然后进入build.spec.text所在的文件夹,执行如下命令对程序进行打包:pyinstallerbuild.spec.txt打包完成后,会在当前文件夹下生成一个dist文件夹,里面有你打包生成的可执行文件,打包成功。