框架上的画布和使用按钮在框架之间切换

时间:2019-06-04 18:48:55

标签: python tkinter

我是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功能在帧之间切换,但是没有成功。 如果我犯了细微的愚蠢的错误,请告诉我;)

0 个答案:

没有答案