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
Download my project scripts


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 2,500 Mar-17-2024, 09:37 AM
Last Post: deanhystad
  tkinter window and turtle window error 1885 3 8,212 Nov-02-2019, 12:18 PM
Last Post: 1885
  PyGtk3, How to Create “title-changed” signal for Gtk.Window Widget? harun2525 2 7,032 May-01-2017, 07:59 AM
Last Post: harun2525
  update a variable in parent window after closing its toplevel window gray 5 11,046 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