Дочернее окно в tkinter не показывает содержимое
Я создаю приложение с графическим интерфейсом, используя Python-библиотеку Tkinter. Фоновую основу я вынес в отдельный файл для удобства. В приложении есть основное окно, класс которого наследуется от класса основы, откуда пользователь переходит в один из двух разделов, каждый из которых представлен своим классом и окном. Классы этих двух разделов так же наследуются от класса основы. Однако при нажатии на какую либо из кнопок появляется просто пустое окно нужных размеров с заголовком, содержимое не отображается, и я не могу понять почему. Может кто подсказать причину?
Код основы:
import tkinter as tk
from PIL import Image, ImageTk
class Base(tk.Tk):
def __init__(self):
super().__init__()
self.geometry("800x600")
self.title("Справочник 3D-печатника")
self.background = tk.Canvas(width=800, height=600,
highlightthickness=0)
self.background.pack()
self.img_back = Image.open("cackground.jpg")
self.img_back = self.img_back.resize((800,600), Image.ANTIALIAS)
self.img_back = ImageTk.PhotoImage(self.img_back, master=self.background)
self.background.create_image(0,0, anchor="nw", image=self.img_back)
self.background.create_text(415,40, text="Справочник 3D-печатника",
font=("Times New Roman", 32, "bold"), fill='blue')
self.vert_line = tk.Canvas(width=755,height=3, bg='black',
highlightthickness=0, borderwidth=0)
self.vert_line.place(x=20,y=90)
self.exit_img = Image.open("button_exit.jpg")
self.exit_img = self.exit_img.resize((85,80), Image.ANTIALIAS)
self.exit_img = ImageTk.PhotoImage(self.exit_img, master=self.background)
self.exit_button = tk.Button(width=85, height=80, image=self.exit_img,
relief=tk.RAISED, command=self.destroy,
highlightthickness=0, borderwidth=0)
self.exit_button.place(x=670, y=508)
Код стартового окна:
import tkinter as tk
from PIL import Image, ImageTk
from base import Base
class ModelingWindow(Base):
def __init__(self):
super().__init__()
class PrintingWindow(Base):
def __init__(self):
super().__init__()
class MainWindow(Base):
def __init__(self):
super().__init__()
self.line = tk.Canvas(self.background, width=10, height=400, bg='red',
relief=tk.GROOVE,
highlightthickness=0, borderwidth=3)
self.line.place(x=400, y=240)
self.button_modeling = tk.Button(text="3D-моделирование", width=20, height=2,
relief=tk.RAISED, fg='blue',
font=("Times New Roman", 18, "bold"),
highlightthickness=0, command=self.show_modeling)
self.button_modeling.place(x=50, y=330)
self.button_printing = tk.Button(text="3D-печать", width=20, height=2,
relief=tk.RAISED, fg='blue',
font=("Times New Roman", 18, "bold"),
highlightthickness=0, command=self.show_printing)
self.button_printing.place(x=470, y=330)
def show_modeling(self):
modeling = ModelingWindow()
self.destroy()
modeling.mainloop()
def show_printing(self):
printing = PrintingWindow()
self.destroy()
printing.mainloop()
if __name__ == "__main__":
main_window = MainWindow()
main_window.mainloop()