2017-07-15 254 views
0

我正在尝试使用自动更新来自url的标签。 我想做类似寻呼机的东西。当服务器上的文件被改变时,标签也应该改变。用按钮我可以手动下载,但我想自动化它。我在哪里犯错?TKinter自动更新urllib的标签

from tkinter import * 
import urllib.request 
import time 

root = Tk() 
check = "" 

#functions 
def auto(): 
    time.sleep(5) #becouse I don't want kill server 
    page = "http://howan.pl/pychal/plik.txt" 
    g = urllib.request.urlopen(page) 
    data = g.read() 
    g.close() 
    return (str(data, encoding='utf-8')) 

def click(): 
    page = "http://howan.pl/pychal/plik.txt" 
    g = urllib.request.urlopen(page) 
    data = g.read() 
    g.close() 
    label.config(text=str(data, encoding='utf-8')) 

#Widgets 
label = Label(root, text="zer0") 
button = Button(root, text="hey", command= click) 

if auto() == check: 
    check = auto 
    label.config(text=check) 
    print(auto()) 

label.pack() 
button.pack() 
root.mainloop() 

回答

1

要自动化它,你需要做的是做的工作的功能,然后用root.after()调用定期该功能。既然您已经完成了“点击”的所有工作,您可以只添加:

def auto_click(): 
    click() 
    root.after(5000, auto_click) # call this function again in 5,000 ms (5 seconds) 

auto_click() # start the autoclick loop.