使用 python GUI 的 Tkinter 命令时出现 Tcl 错误
Getting Tcl error while working with python Tkinter command for GUI
我正在开发一个 GUI,用于对用户输入的文件夹中的视频进行缩减采样。
这是基本框架:
1.On 按钮点击用户输入 path/directory 的视频
2.I 有一个下采样函数,它接受用户的这个输入(路径)并对视频进行下采样。
编辑:我在相同的错误下看到了类似的答案,我已经尝试了解决方案但它不起作用并且给出了不同的错误。所以,相反,我发布这个是为了避免混淆,并想了解如何修复这个特定的问题。
这是我的:
from tkinter import *
from tkinter.ttk import *
from tkinter.filedialog import askopenfile
root = Tk()
root.geometry('200x100')
def open_file():
file = askdirectory()
if file is not None:
return file#add if directory is not correct option
btn = Button(root, text ='Open', command = lambda:open_file())
btn.pack(side = TOP, pady = 10)
#mainloop()
def downsamplevideos(open_file):
for video in os.listdir(open_file):
input_file_name=video
(
ffmpeg
.input('/Users/lala/Desktop/checktwo/{}'.format(input_file_name))
.filter_('scale', 640, 360)
.output("/Users/lala/Desktop/videos/downsampleda{}".format(input_file_name))
.run(capture_stdout=True, capture_stderr=True)
)
btn2 = Button(root, text="Select",command=lambda:downsamplevideos(open_file()))
btn2.pack(side = TOP, pady = 10)
This is opening a window with two button. But it is not working, that is it is not downsampling. Can anyone help me with this implementation?
当您在按下打开按钮后调用 open_file
时,文件路径不会存储在任何地方。这可以通过创建一个全局变量 directory
来解决,该变量将存储文件路径,以便可以在 downsamplevideos
.
中使用
directory = None
def open_file():
file = askdirectory()
if file is not None:
global directory
directory = file
btn = Button(root, text ='Open', command = lambda:open_file())
btn.pack(side = TOP, pady = 10)
#mainloop()
def downsamplevideos():
global directory
for video in os.listdir(directory):
input_file_name=video
(
ffmpeg
.input('/Users/lala/Desktop/checktwo/{}'.format(input_file_name))
.filter_('scale', 640, 360)
.output("/Users/lala/Desktop/videos/downsampleda{}".format(input_file_name))
.run(capture_stdout=True, capture_stderr=True)
)
btn2 = Button(root, text="Select",command=lambda:downsamplevideos())
btn2.pack(side = TOP, pady = 10)
我正在开发一个 GUI,用于对用户输入的文件夹中的视频进行缩减采样。 这是基本框架: 1.On 按钮点击用户输入 path/directory 的视频 2.I 有一个下采样函数,它接受用户的这个输入(路径)并对视频进行下采样。 编辑:我在相同的错误下看到了类似的答案,我已经尝试了解决方案但它不起作用并且给出了不同的错误。所以,相反,我发布这个是为了避免混淆,并想了解如何修复这个特定的问题。 这是我的:
from tkinter import *
from tkinter.ttk import *
from tkinter.filedialog import askopenfile
root = Tk()
root.geometry('200x100')
def open_file():
file = askdirectory()
if file is not None:
return file#add if directory is not correct option
btn = Button(root, text ='Open', command = lambda:open_file())
btn.pack(side = TOP, pady = 10)
#mainloop()
def downsamplevideos(open_file):
for video in os.listdir(open_file):
input_file_name=video
(
ffmpeg
.input('/Users/lala/Desktop/checktwo/{}'.format(input_file_name))
.filter_('scale', 640, 360)
.output("/Users/lala/Desktop/videos/downsampleda{}".format(input_file_name))
.run(capture_stdout=True, capture_stderr=True)
)
btn2 = Button(root, text="Select",command=lambda:downsamplevideos(open_file()))
btn2.pack(side = TOP, pady = 10)
This is opening a window with two button. But it is not working, that is it is not downsampling. Can anyone help me with this implementation?
当您在按下打开按钮后调用 open_file
时,文件路径不会存储在任何地方。这可以通过创建一个全局变量 directory
来解决,该变量将存储文件路径,以便可以在 downsamplevideos
.
directory = None
def open_file():
file = askdirectory()
if file is not None:
global directory
directory = file
btn = Button(root, text ='Open', command = lambda:open_file())
btn.pack(side = TOP, pady = 10)
#mainloop()
def downsamplevideos():
global directory
for video in os.listdir(directory):
input_file_name=video
(
ffmpeg
.input('/Users/lala/Desktop/checktwo/{}'.format(input_file_name))
.filter_('scale', 640, 360)
.output("/Users/lala/Desktop/videos/downsampleda{}".format(input_file_name))
.run(capture_stdout=True, capture_stderr=True)
)
btn2 = Button(root, text="Select",command=lambda:downsamplevideos())
btn2.pack(side = TOP, pady = 10)