Maison  >  Article  >  développement back-end  >  Une ligne de code convertit un programme Python en une application à interface graphique

Une ligne de code convertit un programme Python en une application à interface graphique

王林
王林avant
2023-05-03 13:46:06863parcourir

Project Gooey prend en charge la conversion de (presque) n'importe quel programme console Python 2 ou 3 en une application GUI avec une seule ligne de code.

Une ligne de code convertit un programme Python en une application à interface graphique

1. Démarrage rapide

Avant de commencer, vous devez vous assurer que Python et pip ont été installés avec succès sur votre ordinateur. Sinon, vous pouvez consulter cet article : Guide d'installation super détaillé de Python. pour l'installer.

Si vous utilisez Python pour l'analyse de données, vous pouvez installer directement Anaconda : Anaconda, une bonne aide pour l'analyse et l'exploration de données Python, intègre Python et pip

De plus, il est recommandé d'utiliser l'éditeur VSCode. , qui présente de nombreux avantages : Le meilleur partenaire pour la programmation Python — Guide détaillé VSCode.

Veuillez choisir l'une des méthodes suivantes pour saisir la commande permettant d'installer les dépendances :

  1. Environnement Windows Ouvrez Cmd (Démarrer-Exécuter-CMD).
  2. Environnement MacOS Open Terminal (commande+espace pour entrer dans le Terminal).
  3. Si vous utilisez l'éditeur VSCode ou Pycharm, vous pouvez utiliser directement le Terminal en bas de l'interface.

(Méthode 1) Le moyen le plus simple d'installer Gooey est via PIP :

pipGooey

(Méthode 2 ) Ou bien, Gooey peut être installé en clonant le projet dans un répertoire local

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

Après la décompression, allez dans le dossier et exécutez setup.py:

python setup.py install

2. Comment utiliser

Gooey En attachant un simple décorateur à la fonction principale, puis utilisez GooeyParser pour visualiser tous les paramètres dont vous avez besoin sous forme de zones de texte, de zones de sélection ou même de zones de sélection de fichiers.

Par exemple, dans les articles téléchargés de la littérature Scihub, nous devons saisir deux paramètres : 1. Mots-clés, 2. Nombre d'articles téléchargés, qui peuvent être modifiés à l'aide de Gooey :

gooeyGooey, GooeyParser


 :
parser = GooeyParser(description=)
parser.add_argument(, help=, widget=)
parser.add_argument(, help=)
parser.add_argument(, help=)
args = parser.parse_args()
search(args.keywords, int(args.limit), args.path)

GooeyParser est le même qu'ArgumentParser et peut être augmenté en utilisant les paramètres d'entrée add_argument, la différence est que GooeyParser fournit des options visuelles :

parser.add_argument(, help=, widget=)

Dans cette ligne de code, le paramètre widget fournit un sélecteur de répertoire (widget="DirChooser") à la variable args.path, et le Le paramètre help est utilisé pour rappeler cela à l'utilisateur. La fonction du sélecteur est la suivante :

Une ligne de code convertit un programme Python en une application à interface graphique

Lorsque vous ne fournissez pas de paramètres de widget, le programme utilise la zone de saisie de texte par défaut.

parser.add_argument(, help=)
parser.add_argument(, help=)

Une ligne de code convertit un programme Python en une application à interface graphique

Gooey organisera automatiquement vos paramètres, vous n'aurez donc pas à vous soucier de l'affichage de chaque zone de texte ou zone de sélection. Le dans le code :

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

args = parser.parse_args() peut convertir tout le texte saisi par l'utilisateur en valeur variable de l'objet correspondant, et la valeur variable correspondante peut être directement extraite via args.var .

Le code complet et l'effet de ce programme de visualisation simple sont les suivants :

import asyncio
from scihub import SciHub
from gooey import Gooey, GooeyParser

 :
"""
搜索相关论文并下载

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
 :
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()

Si vous souhaitez que ce code fonctionne parfaitement, veuillez le combiner avec le scihub.py.py de l'outil de recherche et de téléchargement par lots de super littérature python que vous il faut savoir.

Vous pouvez aussi le faire. Utilisez votre propre programme pour l'interface graphique, cela n'a pas d'importance.

L'effet est le suivant :

Une ligne de code convertit un programme Python en une application à interface graphique

3. Composants de widget pris en charge

Tous les composants de widget pris en charge sont les suivants :

1. Cochez la case widget="CheckBox"

Une ligne de code convertit un programme Python en une application à interface graphique

.

2. Zone déroulante widget="DropDown"

Une ligne de code convertit un programme Python en une application à interface graphique

3. Zone de sélection mutuellement exclusive widget="RadioGroup"

Une ligne de code convertit un programme Python en une application à interface graphique

4. widget="FileChooser "

Widget de boîte de sélection de répertoire="DirChooser"

Widget de boîte de sélection de fichiers multiples="MultiFileChooser"

Widget de répertoire d'enregistrement de fichiers="FileSaver"

Une ligne de code convertit un programme Python en une application à interface graphique

5.日期/时间选择器 widget="DateChooser/TimeChooser"

Une ligne de code convertit un programme Python en une application à interface graphique

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

Une ligne de code convertit un programme Python en une application à interface graphique

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

Une ligne de code convertit un programme Python en une application à interface graphique

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

Une ligne de code convertit un programme Python en une application à interface graphique

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

Une ligne de code convertit un programme Python en une application à interface graphique

10.滑片 widget="Slider"

Une ligne de code convertit un programme Python en une application à interface graphique

四、打包

在一切都测试完毕后使用正常后,你可以通过 pyinstaller 将这个可视化程序打包成exe可执行文件。

1.编写 PyInstaller buildspec

PyInstaller使用 buildspec 来确定如何捆绑项目。你可以在Python实用宝典后台回复 buildspec下载 build.spec.txt.

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

Une ligne de code convertit un programme Python en une application à interface graphique

如下所示:

Une ligne de code convertit un programme Python en une application à interface graphique

在路径前面带r,可以不用输入两个斜杆 '' 哦。

2.执行打包命令

为了能够使用 PyInstaller, 我们需要使用pip安装这个模块:

pip install pyinstaller

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

pyinstaller build.spec.txt

Une ligne de code convertit un programme Python en une application à interface graphique

打包完成后会在当前文件夹下生成一个dist文件夹,里面就包含了你打包生成的可执行文件,打包成功。


Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Cet article est reproduit dans:. en cas de violation, veuillez contacter admin@php.cn Supprimer