哈囉大家好
想请问一个问题
就是我用tk做了两页frame(StartPage, ThreePage)
然后我做了两个按钮 一个从StartPage换到ThreePage 另一个是在StartPage贴一张图
我希望当我按了贴图的按钮后 再换到ThreePage时 图会消失
接着再按home按钮返回时 图会直接再出现
但现在这个写法是 当我按了按钮以后 图就永远在那里 换到ThreePage也依旧在那
我觉得应该是label那边不能用root 但我用self他会错误
想请问该怎么做呢?
谢谢
import os
import sys
import matplotlib
matplotlib.use("TkAgg")
import tkinter as tk
import numpy as np
import matplotlib.pyplot as plt
from matplotlib.backends.backend_tkagg import FigureCanvasTkAgg,
NavigationToolbar2TkAgg
from matplotlib.figure import Figure
from PIL import Image, ImageTk
#### Change working dir ####
pathProg = os.getcwd()
os.chdir(pathProg)
def on_Plot():
global img1
global La
img1 = ImageTk.PhotoImage(file='Hey.jpg')
La = tk.Label(root, text="abc", image=img1, bg='gray')
La.place(x=200, y=150, width=100, height=100)
La.update_idletasks()
class Application(tk.Tk):
def __init__(self):
super().__init__()
self.wm_title('Hello')
self.geometry('500x500')
container = tk.Frame(self)
container.pack(side="top", fill="both", expand = True)
container.grid_rowconfigure(0, weight=1)
container.grid_columnconfigure(0, weight=1)
self.frames = {}
for F in (StartPage, PageThree):
frame = F(container, self)
self.frames[F] = frame
frame.grid(row=0, column=0, sticky="nsew")
self.show_frame(StartPage)
def show_frame(self, cont):
frame = self.frames[cont]
frame.tkraise()
class StartPage(tk.Frame):
def __init__(self, parent, root):
super().__init__(parent)
butt3 = tk.Button(self, text="Page3", command = lambda:
root.show_frame(PageThree))
butt3.place(x=100, y=400, width=150, height=80)
butt4 = tk.Button(self, text="Plot", command = on_Plot)
butt4.place(x=300, y=400, width=150, height=80)
class PageThree(tk.Frame):
def __init__(self, parent, root):
super().__init__(parent)
button1 = tk.Button(self, text="Home", command=lambda:
root.show_frame(StartPage)).pack()
root = Application()
root.mainloop()