Am 13.01.14 19:49, schrieb fluttershy...@gmail.com:

Inside the function is where I am having the problem, I am trying to get it to 
delete the label so that it may then replace it with a shorter text.
Here is the full code:




from tkinter import *
import random
main = Tk()
main.title("Crack the Code")

def check1():
     entry = entry1var.get()
     if entry == num1:
         labelent1.destroy()
         labelent1 = Label(main, text="Correct!",fg="green").grid(row = 0, 
column = 3)

This is the wrong way to do it. Yes, in principle you could remove the label and put a new one there; but it's much better to just change the text of it by means of either

        labelent1.configure(text="New text ")

or by linking a variable with the label variable at the setup time
        somestringvar = StringVar("initial text")
        Label(main, textvariable=somestringvar)

and then change that variable
        somestringvar.set("New text")

Both of these don't solve the error, though; it has nothing to do with Tk, you just did not make labelent1 global. However, I strongly advise to use an object for the entire window, where you make this labelent1 an instance variable (put into self).

        Christian


--
https://mail.python.org/mailman/listinfo/python-list

Reply via email to