Python Forum
[Tkinter] Is it the right way to create a second window?
Thread Rating:
  • 0 Vote(s) - 0 Average
  • 1
  • 2
  • 3
  • 4
  • 5
[Tkinter] Is it the right way to create a second window?
#3
Example of using Toplevel

#! /usr/bin/env python3

import tkinter as tk
from tkinter import messagebox
from functools import partial
import sys

class MainWindow:
    def __init__(self, parent):
        self.parent = parent

        btn = tk.Button(self.parent, text='Open New Window', fg='blue', \
                        command=partial(self.open_window), anchor='w')
        btn.grid(column=0, row=0, padx=10, pady=10)
        btn2 = tk.Button(self.parent, text='Close', fg='red', command=partial(self.close), anchor='w')
        btn2.grid(column=1,row=0, padx=10, pady=10)

        self.parent.protocol('WM_DELETE_WINDOW', self.close)

    def open_window(self):
        TopWindow(self.parent)
        self.parent.withdraw()

    def close(self):
        msg = messagebox.askokcancel('Quit Program', 'Do you wish to quit?')
        print(msg)
        if msg == True:
            sys.exit()


class TopWindow:
    def __init__(self, parent):
        self.parent=parent
        self.window = tk.Toplevel(parent=None)
        self.window.title('Top Level Window')
        self.window.geometry('300x200+10+10')
        btn = tk.Button(self.window, text='Close Window', fg='red', \
                        command=partial(self.window_close))
        btn.pack(side='bottom', pady=20)
        self.window.protocol('WM_DELETE_WINDOW', self.callback)

    def window_close(self):
        self.parent.deiconify()
        self.window.destroy()

    def callback(self):
        self.parent.deiconify()
        self.window.destroy()


def main():
    root = tk.Tk()
    root.title('Main Window')
    root.geometry('400x300+10+10')
    MainWindow(root)
    root.mainloop()

main()
I welcome all feedback.
The only dumb question, is one that doesn't get asked.
My Github
How to post code using bbtags


Reply


Messages In This Thread
RE: Is it the right way to create a second window? - by menator01 - May-19-2020, 03:41 AM

Possibly Related Threads…
Thread Author Replies Views Last Post
  Interaction between Matplotlib window, Python prompt and TKinter window NorbertMoussy 3 689 Mar-17-2024, 09:37 AM
Last Post: deanhystad
  tkinter window and turtle window error 1885 3 6,817 Nov-02-2019, 12:18 PM
Last Post: 1885
  PyGtk3, How to Create “title-changed” signal for Gtk.Window Widget? harun2525 2 6,169 May-01-2017, 07:59 AM
Last Post: harun2525
  update a variable in parent window after closing its toplevel window gray 5 9,208 Mar-20-2017, 10:35 PM
Last Post: Larz60+

Forum Jump:

User Panel Messages

Announcements
Announcement #1 8/1/2020
Announcement #2 8/2/2020
Announcement #3 8/6/2020