首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何在Tkinter Python的应用程序中删除视频?

如何在Tkinter Python的应用程序中删除视频?
EN

Stack Overflow用户
提问于 2019-10-06 01:20:14
回答 1查看 73关注 0票数 1

我已经创建了一个应用程序来显示Tkinter和Python的视频。我可以在应用程序中播放、暂停视频,但问题是现在我想将视频从应用程序中删除。我尝试了很多解决方案,但都不能删除。在我的应用程序中显示视频的代码:

代码语言:javascript
运行
复制
def load_vid(path):
    global stop
    global frame_image
    global vlabel
    video = imageio.get_reader(path)
    frame = 0
    stop = Button(tab1, text="Stop",command=stop)
    stop.place(x=350,y=370,anchor="e")
    for image in video.iter_data():
        frame += 1
        image_frame = PIL.Image.fromarray(image)
        image_frame.thumbnail((500,500))
        try:
            frame_image = ImageTk.PhotoImage(image_frame)
            vlabel = Label(tab1,image=frame_image)
            #vlabel.config(image=frame_image)
            vlabel.image = frame_image
            vlabel.place(x=50, y=210, anchor="w")
            if stop == True:
                break
        except:
            sys.exit()

删除视频的函数:

代码语言:javascript
运行
复制
def stop():
    global stop
    stop = True
    print('stop')
    vlabel.config(image = "")

我想从应用程序的主框架中删除视频。对于图像,我可以使用.config(image ="")删除,但现在它不起作用。有什么解决方案吗?谢谢你的帮助。

EN

Stack Overflow用户

回答已采纳

发布于 2019-10-06 01:57:06

从外观上看,您在视频的每一帧中创建了一个新的Label

代码语言:javascript
运行
复制
for image in video.iter_data():
    ...
    try:
        ...
        vlabel = Label(tab1,image=frame_image)
        vlabel.place(x=50, y=210, anchor="w")
        ...
    except:
        ...

在不知道的情况下,可能会有成百上千个Label堆叠在上面,而您只是将最后创建的Label映像设置为None

也许您应该从在循环外部创建Label开始,并且仅在迭代期间修改图像:

代码语言:javascript
运行
复制
def load_vid(path):
    ...
    stop = Button(tab1, text="Stop",command=stop)
    stop.place(x=350,y=370,anchor="e")
    vlabel = Label(tab1)
    vlabel.place(x=50, y=210, anchor="w")
    for image in video.iter_data():
        ...
        try:
            frame_image = ImageTk.PhotoImage(image_frame)
            vlabel.config(image=frame_image)
            vlabel.image = frame_image
            if stop == True:
                break
        except:
            sys.exit()
票数 2
EN
查看全部 1 条回答
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/58250652

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档