繁体   English   中英

单击按钮后,Python Tkinter销毁标签

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM