utiliser la variable d'une entrée Tkinter.

a marqué ce sujet comme résolu.
Auteur du sujet

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

Édité par 5IM0N

+0 -0
Auteur du sujet

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

Édité par 5IM0N

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

Édité par etherpin

Il se faut s’entraider, c’est la loi de la nature. (Jean de La Fontaine, l’âne et le chien)

+0 -0
Vous devez être connecté pour pouvoir poster un message.
Connexion

Pas encore inscrit ?

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