Я новичок в Python и Tkinter, пожалуйста, учтите мои глупые ошибки, если таковые имеются.Код, который я прилагаю, является обобщенной и более простой версией, чтобы ее можно было просто протестировать.Как только я буду в порядке с этим, подготовит код приложения.У меня есть два кадра, у которых есть родитель в качестве окна корневой геометрии.Каждый кадр имеет много холстов, нарисованных в моем основном приложении, но я рисую только один образец прямоугольника в моем вопросе, чтобы сделать его коротким.Моя проблема заключается в том, что когда я рисую два холста на двух разных кадрах, при запуске программы оба появляются одновременно.
import tkinter as tk
from tkinter import ttk
from tkinter import font
from tkinter import *
root=tk.Tk()
root.geometry("550x550")
Crel='groove'
Cbw=3
h=50
w=50
#####Frame 1 & rectangle Canvas drawn########
Cparent=ttk.Frame(root,height=200,width=200)
Cparent.pack()
hallname=tk.Canvas(Cparent,height=h,width=w,relief=str(Crel),
borderwidth=int(Cbw))
hallname.place(x=150,y=150)
#####Frame 2 & rectangle Canvas drawn########
Cparent2=ttk.Frame(root,height=200,width=200)
Cparent2.pack()
hallname1=tk.Canvas(Cparent2,height=h,width=w,relief=str(Crel),
borderwidth=int(Cbw))
hallname1.place(x=30,y=30)
#####Function to switch frames########
def pushbut(obj):
obj.tkraise(obj)
#####Buttons size and font#######
buttonnamefont=font.Font(root,family="Helvetica",size=10,weight="bold")
Details=Button(root,text='Details',font=buttonnamefont,
command=lambda:pushbut(Cparent))
Overview=Button(root,text='Overview',font=buttonnamefont,
command=lambda:pushbut(Cparent2))
Overview.place(x=300,y=520)
Details.place(x=100,y=520)
Cparent.tkraise()
root.update()
Если я пытаюсь показать один кадр, используя функцию tkraise, другой кадр также отображается.
Что касается переключения кадров, я сделал две кнопки и попытался переключаться между кадрамииспользуя функцию lamba, но не смогПожалуйста, дайте мне знать за мелкие идиотские ошибки, если я их совершил;)