Reputation: 95
I have a question regarding a popup window from the main window. How do I ensure that when there's a popup window (to set date & time), the main window cannot be touched (i.e closed or press anything) until the user close the popup window.
I have tried using grab_set
but the main window can still be closed which result in error message:
bgerror failed to handle background error.
grab_set_global
work for me but I won't be able to move the popup window around.
# Main window
root = Tk()
root.title("Restaurants")
root.geometry("800x500")
lines of codes..... where user will select if they want to set the date
and time
# Popup window
def date_time():
popup = Tk()
popup.title("Set Date and Time")
popup.geometry("500x500")
popup.grab_set() # Not working
lines of codes to run
I want it to focus on the popup window and the main window under it will not be able to close until the popup window is closed/destroyed.
Upvotes: 4
Views: 1449
Reputation: 95
Ok, I have managed to solve my problem by changing the popup = Tk()
to popup = Toplevel()
and popup.grab_set
works on the popup window. The main window can't be touched till the popup window is closed.
Upvotes: 2
Reputation: 1390
You can use popup.focus_force
, but probably first check if root is in focus. But that seems to be similar to cheating.
Upvotes: 1