Python Tkimport how to make one from several windows when importing from a module?

Viewed 23

I am writing an application in tkinter consisting of several modules in which there are classes. Each module to a separate page of the app. As I move the buttons between the pages "next", "previous" it opens a new window for me every time. How do I make it so that each time calling pages opens in the same window?

I give draft code.

thank you for your help :D

task1.py

import tkinter as tk

from Test.modul.task1 import FirstPage1

class FirstPage0:
    def __init__(self, root):
        self.root = root
    
    def get_settings(self):
        # Window settings
        self.root.geometry("100x200")
    
    def get_second_page(self):
        FirstPage1(tk.Toplevel()).get_run_first_page()
    
    def get_button(self):
        # Add buttons
        tk.Button(self.root, text="Start page", command=self.get_second_page).pack()
        tk.Button(self.root, text="Exit", command=self.root.destroy).pack()
    
    def get_run_first_page(self):
        # Launching the application
        self.get_settings()
        self.get_button()
        self.root.mainloop()

if __name__ == '__main__':
    first = FirstPage0(tk.Tk())
    first.get_run_first_page()

task2.py

import tkinter as tk

class FirstPage1:
    def __init__(self, root):
        self.root = root
    
    def get_settings(self):
        # Window settings
        self.root.geometry("100x200")
    
    def get_second_page1(self):
        from Test.task import FirstPage0
        FirstPage0(tk.Toplevel()).get_run_first_page()
    
    def get_button(self):
        # Add buttons
        tk.Button(self.root, text="Back", command=self.get_second_page1).pack()
        tk.Button(self.root, text="Exit", command=self.root.destroy).pack()
    
    def get_run_first_page(self):
        # Launching the application
        self.get_settings()
        self.get_button()
        self.root.mainloop()

if __name__ == '__main__':
    first = FirstPage1(tk.Tk())
    first.get_run_first_page()
0 Answers
Related