class Video:
def __init__(self):
self.v1 = StringVar()
self.entry1 = Entry(root, textvariable=v1)
self.entry1.pack()
self.downloadUrl = v1.get()
def downloadVideo(self):
ydl_opts = {}
with youtube_dl.YoutubeDL(ydl_opts) as ydl:
self.ydl.download([self.downloadUrl])
menu = Menu(root)
root.config(menu=menu)
menuOne = Menu(menu, tearoff=0)
menu.add_cascade(label='Magrobebi', menu=menuOne)
menuOne.add_command(label='Download Video', command=Video.downloadVideo)
Ich versuche, eine Schaltfläche im Menü erstellen, die ein Video herunterladen wird. Ich habe Probleme, dieses DownloadUrl herumzugeben, da es keine globale Variable ist. Ich kann den Befehl selbst nicht in die Klasse einfügen, weil er nicht auf diese Weise erstellt wird. Momentan, "TypeError: downloadVideo() fehlt 1 benötigt positional argument: 'self'" ist der Fehler, den ich habe, kann ich nicht eine Funktion aus einer anderen Klasse in diesem, wie komme ich um diese? Ich möchte nur eine Schaltfläche, die einen Eintrag erstellt, wo der Benutzer einen Link eingeben und herunterladen kann.Kann keine Funktion aus der Klasse tkinter aufrufen
Ihre Downloadvideos Methode nicht statisch ist. Sie müssen es entweder statisch machen (@staticmethod über der Methode) oder eine Instanz dieser Klasse instanziieren. –