2017-10-11 141 views
0

我有一個標籤出現後點擊一個按鈕,但每次點擊按鈕後,前一個標籤仍然在其位置和一個新的創建,我想對於以代替舊的被換上新的標籤,代碼如下:Python Tkinter摧毀標籤後點擊一個按鈕

browser = webdriver.PhantomJS() 
browser.get('http://www.ipvoid.com/ip-blacklist-check/') 

def helloCallBack(): 
    ip = entry.get() 
    elem = browser.find_element_by_name('ip') # Find the search box 
    elem.send_keys(ip + Keys.RETURN) 
    for elem in itertools.chain(browser.find_elements_by_xpath('.//span[@class = "label label-success"]'), browser.find_elements_by_xpath('.//span[@class = "label label-danger"]')): 
     print elem.text 
    label2 = tk.Label(root1, text="IPVoid: " + elem.text) 
    label2.pack(side=tk.BOTTOM) 

root1 = tk.Tk() 
root1.geometry("500x500") 
root1.title("CZEKER") 
label = tk.Label(root1, text='Input IP Address:') 
entry = tk.Entry(root1) 
label.pack(side=tk.TOP) 
entry.pack() 
B = tk.Button(root1, text = "Analiza", command = helloCallBack) 
B.pack() 
label2 = tk.Label(root1, text="IPVoid: " + elem.text) 
label2.pack(side=tk.BOTTOM) 

root1.mainloop() 

我覺得我不太清楚這個循環是如何工作的,只要按鈕B被點擊時,程序執行方法helloCallBack (),在其中填充label2。但是我不能在方法開始時銷燬標籤,因爲它還沒有被填充,但是我不能在它之後銷燬它,因爲它會在它出現之後立即銷燬它,而不是按鈕B被點擊的時刻第二次。我的問題如下:每次單擊按鈕B後,如何使新標籤2出現在舊標籤2的位置。謝謝。

回答

3

不是每次點擊都重新創建該標籤,您可以使用空文本創建它,然後在每次點擊時更改其內容。

def helloCallBack(): 
    ... 
    ... 
    label2.configure(text="IPVoid: " + elem.text) 

label2 = tk.Label(root1, text="") 
#or just label2 = tk.Label(root1) used that one to make it explicit right now 
label2.pack(side=tk.BOTTOM)