2017-07-15 255 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.