utiliser la variable d'une entrée Tkinter.

a marqué ce sujet comme résolu.

Bonjour,

je souhaite créer une petite application (pour commencer) qui permettra de télécharger des vidéos sur de nombreux sites internets en utilisant youtube-dl.

je sais qu’il existe déjà de nombreuses applis sur ce modèle (youtube-dlg, etc.) mais mon but est de progresser sur un modèle concret et créer qqc d’utilisable à long terme.

Pour le moment je compte utiliser tkinter pour mon interface graphique. mais je suis confronté à un problème de variable.

En effet, je compte pour le moment créer une entrée [ Entry() ], ou l’utilisateur indique une url puis appuie sur le boutton [ Button() ] qui aura comme argument

command = os.system(f"youtube-dl {url}")

Le problème c’est que je ne sais pas comment obtenir l’URL depuis l’entrée. J’ai essayé avec get(), mais ça ne marche pas. Et j’obtiens « PY_VAR0 » …

Merci d’avance ! :)

+0 -0

'est fait, voici mon code :

#!/usr/bin/env python
#-*-coding:utf-8-*-

###     IMPORTS         ###

from tkinter import *
import os

###     FONCTIONS       ###


fenetre = Tk()  # creation de fenetre
fenetre["bg"] = "orange"

presentation = Label(fenetre) ### Texte présentation
presentation["text"] = "téléchargeur de vidéos, version: 0.1 alpha"


bouton_fermer = Button(fenetre)
bouton_fermer["text"] = "fermer"
bouton_fermer["command"] = fenetre.quit


lien = StringVar()
entree = Entry(fenetre, textvariable=lien, width=30)

lien.get()
#entree.get()


bouton_executer = Button(fenetre)
bouton_executer["text"] = "telecharger"
bouton_executer["command"] =  os.system(f"youtube-dl {lien}")


###     PACKS       ###

presentation.pack()
entree.pack()           
bouton_fermer.pack()
bouton_executer.pack()


fenetre.mainloop()
+0 -0

supprime ta ligne 27.

Moi, j’aime bien faire le pack() juste après avoir défini le widget.
Je mets aussi la définition des procédures d’action juste avant le widget.
Du coup, j’ai un bloc cohérent que je peux facilement déplacer ou réutiliser.

A la place de tes lignes 31–33, j’ai écris cela, qui fonctionne :

def vas_y():
    print(lien.get())

bouton_executer = Button(fenetre, text="télécharger", command=vas_y)
bouton_executer.pack()
+0 -0
Connectez-vous pour pouvoir poster un message.
Connexion

Pas encore membre ?

Créez un compte en une minute pour profiter pleinement de toutes les fonctionnalités de Zeste de Savoir. Ici, tout est gratuit et sans publicité.
Créer un compte