Created
May 18, 2018 18:11
-
-
Save novel-yet-trivial/ac4816791a0a7f15497bb8f17cb32612 to your computer and use it in GitHub Desktop.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
try: #python3 imports | |
import tkinter as tk | |
except ImportError: #python3 failed, try python2 imports | |
import Tkinter as tk | |
class Main(tk.Frame): | |
def __init__(self, master=None, **kwargs): | |
tk.Frame.__init__(self, master, **kwargs) | |
lbl = tk.Label(self, text="this is the main frame") | |
lbl.pack() | |
btn = tk.Button(self, text='click me', command=self.open_popup) | |
btn.pack() | |
def open_popup(self): | |
print("runs before the popup") | |
Popup(self) | |
print("runs after the popup closes") | |
class Popup(tk.Toplevel): | |
"""modal window requires a master""" | |
def __init__(self, master, **kwargs): | |
tk.Toplevel.__init__(self, master, **kwargs) | |
lbl = tk.Label(self, text="this is the popup") | |
lbl.pack() | |
btn = tk.Button(self, text="OK", command=self.destroy) | |
btn.pack() | |
# The following commands keep the popup on top. | |
# Remove these if you want a program with 2 responding windows. | |
# These commands must be at the end of __init__ | |
self.transient(master) # set to be on top of the main window | |
self.grab_set() # hijack all commands from the master (clicks on the main window are ignored) | |
master.wait_window(self) # pause anything on the main window until this one closes | |
def main(): | |
root = tk.Tk() | |
window = Main(root) | |
window.pack() | |
root.mainloop() | |
if __name__ == '__main__': | |
main() |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment