Reputation: 311
I have looked for ways to do this but most of them are for instances that don't help me.
Here is my code -
import os
import time
import tkinter
from tkinter import *
root = Tk()
root.title('Interpreter')
Label(text='What is your name?').pack(side=TOP,padx=10,pady=10)
entry = Entry(root, width=30)
entry.pack(side=TOP,padx=10,pady=10)
def onOkay():
print = str(entry.get())
myName = Label(text='Your name is '+print+'.').pack(side=BOTTOM,padx=15,pady=10)
myName
def onClose():
#Nothing here yet
Button(root, text='OK', command=onOkay).pack(side=LEFT,padx=5,pady=5)
Button(root, text='CLOSE', command=onClose).pack(side= RIGHT,padx=5,pady=5)
root.mainloop()
Upvotes: 0
Views: 852
Reputation: 3964
You can use the pack_forget() method on a widget to hide it.
However, you should change a couple of things in your onOkay()
function:
def onOkay():
global myName #make myName a global so it's accessible in other functions
name = entry.get() #print shouldn't be a variable name. Also, .get() returns a string, so str() is redundant
myName = Label(root, text='Your name is '+name+'.')
myName.pack(side=BOTTOM,padx=15,pady=10) #put this on a new line so myName is a valid variable
And onClose:
def onClose():
myName.pack_forget()
Edit: It's unclear if this is what you want your program to do (ie, forget the myName label when the Close button is pressed), but hopefully you can work it out from here.
Upvotes: 2