首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何检查帧是否存在,如果存在,如何销毁它?

问如何检查帧是否存在,如果存在,如何销毁它?
EN

Stack Overflow用户
提问于 2013-01-30 03:08:53
回答 1查看 1.2K关注 0票数 1

我正在尝试从一个txt文件中提取一些文本行,并将它们显示在窗口中。到现在为止还好。

我想每隔'x‘秒重新加载/刷新该窗口,以便重画其中的标签(以防我在该txt文件中添加、减去或更改了文本行),但到目前为止还不能这样做。

我已经向根目录添加了一个框架,并动态地将标签添加到框架中。每隔'x‘秒,我想检查该帧是否存在,如果存在,则销毁它,再次提取txt文件的内容,并重新创建帧和标签,以便我的标签是最新的。

为此,我尝试在函数开始时添加一个“Try/Except”来检查框架是否存在并销毁它,但我无法让它工作。

有什么想法可以帮助一个非常缺乏经验的python爱好者吗?

代码语言:javascript
复制
#coding:utf-8

from Tkinter import *
import urllib
import time

mroot = Tk()

def mactions():
    mconteudo = urllib.urlopen('http://www.xyz.com.br/recados.txt')
    mtexto = mconteudo.read().split('***')

    #this is where I think I'm doing something wrong - I always get a NameError.
    try:
        mframe.destroy()
    except NameError:
        print '- NameError -'
    except UnboundLocalError:
        print '- UnboundLocalError -'

    mframe = Frame(mroot)
    for i in mtexto:
        w = Label(mframe, text=i)
        w.pack()
        wseparador = Label(mframe, text='________')
        wseparador.pack()
        mframe.pack()

    mroot.after(2000, mactions)

mactions()
mroot.mainloop()
EN

回答 1

Stack Overflow用户

发布于 2013-01-30 22:18:39

mframe仅在函数中定义。它会在函数的每一次传递后自动销毁。要验证这一点,可以添加:"global mframe“,使其成为一个全局变量,该变量将一直存在到函数的下一次调用。

还有更好的解决方案,如在另一个答案中建议的将变量存储在类中。

更新标签上下文怎么办?此外,您还可以尝试仅使用单个多行标签。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/14590403

复制
相关文章

相似问题

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