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)
ビデオをダウンロードするメニューを作成しようとしています。私はグローバル変数ではないので、そのdownloadUrlの周りを動かすのに問題がありました。 コマンド自体をクラスに入れることはできません。そのような方法でも作成されないからです。現在、 "TypeError:downloadVideo()missing 1必要な位置引数: 'self'"は私が抱えていたエラーです。このクラス内の別のクラスから関数を呼び出すことはできません。どうすればこの問題を回避できますか?私はちょうどユーザーがリンクを入力してそれをダウンロードできるエントリを作成するボタンを持っています。クラスtkinterから関数を呼び出せません
:代わりに、あなたが実際に
downloadVideo
の内側にある値を、必要な時にv1.get()
を呼び出す必要があります。静的にする(メソッドの上に@staticmethod)か、そのクラスのインスタンスをインスタンス化する必要があります。 –