我正在尝试从一个txt文件中提取一些文本行,并将它们显示在窗口中。到现在为止还好。
我想每隔'x‘秒重新加载/刷新该窗口,以便重画其中的标签(以防我在该txt文件中添加、减去或更改了文本行),但到目前为止还不能这样做。
我已经向根目录添加了一个框架,并动态地将标签添加到框架中。每隔'x‘秒,我想检查该帧是否存在,如果存在,则销毁它,再次提取txt文件的内容,并重新创建帧和标签,以便我的标签是最新的。
为此,我尝试在函数开始时添加一个“Try/Except”来检查框架是否存在并销毁它,但我无法让它工作。
有什么想法可以帮助一个非常缺乏经验的python爱好者吗?
#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()发布于 2013-01-30 22:18:39
mframe仅在函数中定义。它会在函数的每一次传递后自动销毁。要验证这一点,可以添加:"global mframe“,使其成为一个全局变量,该变量将一直存在到函数的下一次调用。
还有更好的解决方案,如在另一个答案中建议的将变量存储在类中。
更新标签上下文怎么办?此外,您还可以尝试仅使用单个多行标签。
https://stackoverflow.com/questions/14590403
复制相似问题