I have a label which appears after the click of a button, however after each click of the button the previous label remains in its position and a new one is created, I would lik
Instead of recreating that label every click, you can create it with empty text then change its content on every click.
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)