[英]Python Tkinter destroy label after the click of a button
我有一个标签,单击按钮后会出现,但是每次单击按钮后,前一个标签会保持在原位置并创建一个新标签,我希望将新标签替换旧标签,代码如下:
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后,如何使新的label2代替旧的label2。谢谢。
您可以使用空文本创建标签,然后在每次单击时更改其内容,而不用重新创建该标签。
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)
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.