我点击一个按钮后会出现一个标签,但是每次点击按钮后,前一个标签保持在其位置并创建一个新标签,我希望新标签代替旧的,代码如下:
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.谢谢。
答案 0 :(得分: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)