2017-10-11 8 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はクリックされません2回目。私の質問は次のとおりです。ボタン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) 
関連する問題