Witam, mam pytanie: podrzucam kod z 2ch plików, juz straciłem pomysły. Wywołując plik fileA.py otwiera mi się okno z dwoma buttonami exit i start. Exit działa ale jak klikę w start to potrzebuje otworzyć drugie okno fileB.pt. (chcę aby oba okna otwierały się w jednym window) Niby działa tylko problem mam w tym nie otwiera się "okno na oknie" tylko "dokleja się pod spodem" i mam efekt otwartych dwóch okien :/. Proszę o pomoc, z góry dziękuję:) Python 3.10
fileA.pl
import tkinter as tk
from GUI.module.scale_of_img import get_scale
class FirstPage:
def __init__(self, root):
self.root = root
def get_settings(self):
# Window settings
self.root.title('....')
self.root.resizable(False, False)
self.root.geometry("1038x900")
def get_picture(self):
# Background loading and setting parameters
self.bg = tk.PhotoImage(file="....png")
self.logo = tk.PhotoImage(file="...logo.png")
# Background image settings
self.my_canvas = tk.Canvas(self.root, width=1038, height=500)
self.my_canvas.pack(fill="both", expand=True)
self.my_canvas.create_image(0, 150, image=self.bg, anchor="nw")
self.my_canvas.create_image(0, 800, image=self.logo, anchor="nw")
def get_text(self):
title = """..."""
describe = """..."""
# Text on page
self.my_canvas.create_text(500, 80,
text=title,
font=("Helvetica", 30),
justify='center', fill="red")
self.my_canvas.create_text(500, 650,
text=describe,
font=("Helvetica", 10),
justify='center')
def get_second_page(self):
from GUI.module.second_page import SecondPage
SecondPage(self.root).get_run()
def get_button(self):
# Add buttons
button1 = tk.Button(self.root, text="Start", command=self.get_second_page)
button2 = tk.Button(self.root, text="Exit", command=self.root.destroy)
# Dimensions and location of buttons
self.my_canvas.create_window(200, 300, anchor="nw", window=button1, height=50, width=200)
self.my_canvas.create_window(650, 300, anchor="nw", window=button2, height=50, width=200)
def get_run_first_page(self):
# Launching the application
self.get_settings()
self.get_picture()
self.get_text()
self.get_button()
get_scale()
self.root.mainloop()
if __name__ == '__main__':
first = FirstPage(tk.Tk())
first.get_run_first_page()
fileB.py
import tkinter as tk
"importy...""
''' The second side of the application '''
class SecondPage:
def __init__(self, root=None):
self.root = root
self.my_canvas = tk.Canvas(self.root, width=1038, height=678)
self.my_canvas.pack(fill="both", expand=True)
# def get_settings(self):
# # Window settings
# self.root.title('....')
# self.root.resizable(False, False)
# self.root.geometry("1038x900")
def get_picture(self):
# Background loading and setting parameters
self.bg = tk.PhotoImage(file="...background.png")
self.logo = tk.PhotoImage(file="...logo.png")
# Background image settings
self.my_canvas.create_image(0, 150, image=self.bg, anchor="nw")
self.my_canvas.create_image(0, 800, image=self.logo, anchor="nw")
def get_text(self):
# Program title
title = """..."""
self.my_canvas.create_text(520, 80,
text=title,
font=("Helvetica", 30),
justify='center', fill="red")
def get_aaa(self):
ThirdPage....(tk.Toplevel()).get_run()
def get_bbb(self):
ThirdPage....(tk.Toplevel()).get_run()
def get_ccc(self):
ThirdPage....(tk.Toplevel()).get_run()
def get_button(self):
# Add buttons
button1 = tk.Button(self.root, text="...", command=self.aaa)
button2 = tk.Button(self.root, text="...", command=self.bbb)
button3 = tk.Button(self.root, text="...", command=self.ccc)
button4 = tk.Button(self.root, text="Exit", command=self.root.destroy)
# Dimensions and location of buttons
self.my_canvas.create_window(100, 380, anchor="nw", window=button1, height=200, width=200)
self.my_canvas.create_window(430, 380, anchor="nw", window=button2, height=200, width=200)
self.my_canvas.create_window(750, 380, anchor="nw", window=button3, height=200, width=200)
self.my_canvas.create_window(0, 100, anchor="nw", window=button4, height=50, width=200)
def get_run(self):
# Launching the application
# self.get_settings()
self.get_picture()
self.get_text()
self.get_button()
if __name__ == '__main__':
second = SecondPage(tk.Tk())
second.get_run()```