在方法中销毁tkinter框架

时间:2017-10-13 03:33:19

标签: python python-3.x tkinter tkinter-layout

这是Python版本3.6.2

以下是我通过Google新RSS频道获取新闻的方法。我试图删除框架,以便再次调用该方法时,文本将被删除并替换为新文本。如何拆除框架?我想删除它,所以当它被调用时,只显示5篇新闻文章而不是相互堆叠。我目前有一个底部框架,里面有一个左下框架,一个包含所有新闻文章标签的新闻框架,以及一个包含所有图像的报纸图像框架。我正在尝试删除新闻框架,所以当我调用我的get_news方法时,它是一个没有标签的新框架。任何帮助,将不胜感激。这是项目的GUI

def get_news():
    try:
        feed = feedparser.parse(google_news_url)

        for post in feed.entries[0:5]:
            newspaper_image = Label(frame_newspaper, bg='black', fg='white')
            newspaper_image.configure(image=photo)
            newspaper_image.icon = photo

            label_news = Label(frame_news, bg='black', fg='white', font=newsFont)
            label_news['text'] = post['title']
            newspaper_image.pack(side=TOP, anchor=W)
            label_news.pack(side=TOP, anchor=W)
        frame_news.after(600000, get_news)

    except Exception as e:
        traceback.print_exc()
        print("Error: %s. Cannot get news." % e)

1 个答案:

答案 0 :(得分:0)

在方法的开头,您必须获取帧的子项并将其销毁。我是这样做的:

    for widget in frame_news.winfo_children():
        widget.destroy()
    for i in frame_newspaper.winfo_children():
        i.destroy()

清除循环期间创建的所有标签。然后当调用循环时,创建新标签代替旧标签。