I wanted to cerate a message window on top of root window which looks similar from this link. A message window with a message and an inactive button untill some portion of the code are done and then to display a message with an active button. This is how the code structure looks like(I have cut through specific details to just clear the point how my code flow looks like)
The second window is not working, instead the window appears at the end of the function. Can somebody help.
from Tkinter import *
import tkMessageBox
def a():
return
def b():
. . .
. . .
msg_window = Toplevel()
msg_window.grapset()
msg_window.title( ___ )
msg_geometry( ___ )
msgLabel = Label(window)
msgLabel["text"]="Processing...."
msgLabel.pack()
btn = Button(msg_window, text="Ok", command=msg_window.destroy())
btn.pack()
btn.config(state=DISABLED)
a()
c()
d()
d()
msgLabel["text"]="Done"
msgLabel.pack()
btn = Button(msg_window, text="Ok", command=msg_window.destroy())
btn.pack()
btn.config(state=NORMAL)
e()
if tkMessageBox.askyesno( ___ ):
do something
else:
do something
pass
def c():
return
def d():
return
def e():
return
root = Tk()
frame = Frame( ___ )
frame.pack()
but_find = Button( ___ )
but_find.pack()
but_start = Button( ___ )
but_start.pack()
but_exit = Button( ___ )
but_exit.pack()
root.mainloop()
Explanation:
I am building an application where the root window contains 3 buttons. When start button is clicked, function b is called, which in turn calls various other functions inside function b itself. This is the point where, i want to create a second window that shows up above the root window and making the root window inactive until function b gets completed or until the second window is destroyed.
What i want is..
The second window(contains 2 things- a message and a button) should start inside the function b after some steps. It should display the message Processing.... and an inactive button called Ok before function a starts and should appear until function d gets completed. Then, i want to display Done with an active 'Ok' button that destroys the second window. Then make the root window active.