Tkinter VideoPlayer Library to Play a Video: TypeError: init() got multiple values for argument 'scaled'
Tkinter VideoPlayer Library to Play a Video: TypeError: init() got multiple values for argument 'scaled'
我正在使用它来创建一个 windows 应用程序界面。我希望在界面中播放一个视频,而不是让另一个 window 弹出来播放该视频。我发现了一个名为 Tkinter VideoPlayer 的库,它专门用于在标签上播放视频。但是,当我 运行 使用现有代码的代码时,出现错误:
TypeError: __init__() got multiple values for argument 'scaled'" .
我知道“缩放”变量同时获得不同的值,这就是代码不是 运行ning 的原因。但是,我不确定如何解决这个问题。我将包含我的代码和 Github 存储库 link。
Github link: https://github.com/PaulleDemon/tkVideoPlayer/blob/master/tkVideoPlayer/tkvideoplayer.py
import tkinter as tk
from tkVideoPlayer import TkinterVideo
HEIGHT = 700
WIDTH = 800
root = tk.Tk()
#Canvas
canvas = tk.Canvas(root, height = HEIGHT, width=WIDTH)
canvas.pack()
#Background Picture
background_img = tk.PhotoImage(file = "GundamNarrative2.png")
background_label = tk.Label(root, image=background_img)
background_label.place(relwidth=1, relheight=1)
#Background
background = tk.Frame(root, bg = "blue")
background.place(relx=.5, rely=.1, relwidth=0.75, relheight=0.1, anchor="n")
# Buttons
record_button = tk.Button(background, text = "Record", bg = "green")
record_button.place(relx = 0, rely = .5, relwidth = 0.15, relheight = .5)
skeleton_button = tk.Button(background, text = "Skeleton", bg = "red")
skeleton_button.place(relx = .4, rely = .5, relwidth = 0.15, relheight = .5)
frame_button = tk.Button(background, text = "Frame", bg = "yellow")
frame_button.place(relx = .85, rely = .5, relwidth = 0.15, relheight = .5)
#Label
video_label = tk.Label(background, text = "Enter video name below")
video_label.place(relx = 0.4, rely=0, relwidth=.25, relheight=.15)
#Entry Area
entry = tk.Entry(background, bg = 'gray')
entry.place(relx = 0.4, rely=.15, relwidth=.25, relheight=.35)
#Bottom Frame
bottom_frame = tk.Frame(root, bg = "blue", bd=10)
bottom_frame.place(relx = .5, rely=0.25, relwidth=.75, relheight=.65, anchor = "n")
#Screen
screen = tk.Label(bottom_frame, text = "I want video to play here", bg = "gray")
screen.place(relx=0, rely=0, relwidth=1, relheight=1)
#Error in line below
videoplayer = TkinterVideo(screen, scaled=True, pre_load=False)
videoplayer.load("C:\Users\jcoli\PycharmProjects\SwimCodeProject\PoseVideos\Jordan.mov")
videoplayer.place(relx=0, rely=0, relwidth=1, relheight=1)
videoplayer.play()
root.mainloop()
如果你现在还没有弄明白,我遇到了同样的错误,只需在声明 TkinterVideo 时删除参数名称即可解决此问题:
videoplayer = TkinterVideo(screen,True,False)
应该可以解决问题。
对于 tKinterVideoPlayer,我必须 运行 setup.py。但是,您确实需要“scaled=”和“pre_load=”
您安装库的方式没有任何问题。
问题是您没有指定 master=screen
。 TkinterVideo 采用的第一个参数是缩放的。所以你需要在 TkinterVideo 中显式设置 master=screen
。例如:TkinterVideo(master=screen, scaled=True, pre_load=False)
。
顺便说一句,默认的缩放选项是 True 而 pre_load 是 False 所以不需要明确地设置它。
scaled
选项会将视频调整为当前屏幕大小。如果将其设置为 False
,则可以使用 videoplayer.set_size((300, 300))
指定所需的帧大小。注意:它以元组作为参数
我正在使用它来创建一个 windows 应用程序界面。我希望在界面中播放一个视频,而不是让另一个 window 弹出来播放该视频。我发现了一个名为 Tkinter VideoPlayer 的库,它专门用于在标签上播放视频。但是,当我 运行 使用现有代码的代码时,出现错误:
TypeError: __init__() got multiple values for argument 'scaled'" .
我知道“缩放”变量同时获得不同的值,这就是代码不是 运行ning 的原因。但是,我不确定如何解决这个问题。我将包含我的代码和 Github 存储库 link。 Github link: https://github.com/PaulleDemon/tkVideoPlayer/blob/master/tkVideoPlayer/tkvideoplayer.py
import tkinter as tk
from tkVideoPlayer import TkinterVideo
HEIGHT = 700
WIDTH = 800
root = tk.Tk()
#Canvas
canvas = tk.Canvas(root, height = HEIGHT, width=WIDTH)
canvas.pack()
#Background Picture
background_img = tk.PhotoImage(file = "GundamNarrative2.png")
background_label = tk.Label(root, image=background_img)
background_label.place(relwidth=1, relheight=1)
#Background
background = tk.Frame(root, bg = "blue")
background.place(relx=.5, rely=.1, relwidth=0.75, relheight=0.1, anchor="n")
# Buttons
record_button = tk.Button(background, text = "Record", bg = "green")
record_button.place(relx = 0, rely = .5, relwidth = 0.15, relheight = .5)
skeleton_button = tk.Button(background, text = "Skeleton", bg = "red")
skeleton_button.place(relx = .4, rely = .5, relwidth = 0.15, relheight = .5)
frame_button = tk.Button(background, text = "Frame", bg = "yellow")
frame_button.place(relx = .85, rely = .5, relwidth = 0.15, relheight = .5)
#Label
video_label = tk.Label(background, text = "Enter video name below")
video_label.place(relx = 0.4, rely=0, relwidth=.25, relheight=.15)
#Entry Area
entry = tk.Entry(background, bg = 'gray')
entry.place(relx = 0.4, rely=.15, relwidth=.25, relheight=.35)
#Bottom Frame
bottom_frame = tk.Frame(root, bg = "blue", bd=10)
bottom_frame.place(relx = .5, rely=0.25, relwidth=.75, relheight=.65, anchor = "n")
#Screen
screen = tk.Label(bottom_frame, text = "I want video to play here", bg = "gray")
screen.place(relx=0, rely=0, relwidth=1, relheight=1)
#Error in line below
videoplayer = TkinterVideo(screen, scaled=True, pre_load=False)
videoplayer.load("C:\Users\jcoli\PycharmProjects\SwimCodeProject\PoseVideos\Jordan.mov")
videoplayer.place(relx=0, rely=0, relwidth=1, relheight=1)
videoplayer.play()
root.mainloop()
如果你现在还没有弄明白,我遇到了同样的错误,只需在声明 TkinterVideo 时删除参数名称即可解决此问题:
videoplayer = TkinterVideo(screen,True,False)
应该可以解决问题。
对于 tKinterVideoPlayer,我必须 运行 setup.py。但是,您确实需要“scaled=”和“pre_load=”
您安装库的方式没有任何问题。
问题是您没有指定 master=screen
。 TkinterVideo 采用的第一个参数是缩放的。所以你需要在 TkinterVideo 中显式设置 master=screen
。例如:TkinterVideo(master=screen, scaled=True, pre_load=False)
。
顺便说一句,默认的缩放选项是 True 而 pre_load 是 False 所以不需要明确地设置它。
scaled
选项会将视频调整为当前屏幕大小。如果将其设置为 False
,则可以使用 videoplayer.set_size((300, 300))
指定所需的帧大小。注意:它以元组作为参数